tm_instr.mdg.hh

Go to the documentation of this file.
00001 #ifndef lestes__md__instructions__tm_instr_mdg_hh__included
00002 #define lestes__md__instructions__tm_instr_mdg_hh__included
00003 /* This file is automaticaly generated from machine-description */
00004 
00005 /*!
00006         \file
00007         \brief IDs used by ::lestes::md::instructions::tm_instr class.
00008         \author jaz
00009 */
00010 
00011 #include <lestes/md/common.hh>
00012 #include <lestes/std/objectize_macros.hh>
00013 
00014 package(lestes);
00015 package(md);
00016 package(instructions);
00017 
00018 /*!
00019         \brief Ids of target machine instructions.
00020 */
00021 enum tm_instr_id_type {
00022         NO_INSTRUCTION_ID,
00023         INSTRUCTION_MOV__1,     //1
00024         INSTRUCTION_MOV__2,     //2
00025         INSTRUCTION_MOV__3,     //3
00026         INSTRUCTION_MOV__4,     //4
00027         INSTRUCTION_MOV__5,     //5
00028         INSTRUCTION_MOV__7,     //6
00029         INSTRUCTION_MOV__71,    //7
00030         INSTRUCTION_MOV__8,     //8
00031         INSTRUCTION_SYSMOV__9,  //9
00032         INSTRUCTION_SYSMOV__10, //10
00033         INSTRUCTION_SYSMOV__11, //11
00034         INSTRUCTION_SAHF__1,    //12
00035         INSTRUCTION_LAHF__1,    //13
00036         INSTRUCTION_ADD__1,     //14
00037         INSTRUCTION_ADD__11,    //15
00038         INSTRUCTION_ADD__12,    //16
00039         INSTRUCTION_ADD__13,    //17
00040         INSTRUCTION_ADD__14,    //18
00041         INSTRUCTION_SUB__1,     //19
00042         INSTRUCTION_SUB__11,    //20
00043         INSTRUCTION_SUB__12,    //21
00044         INSTRUCTION_IMUL__1,    //22
00045         INSTRUCTION_IMUL__2,    //23
00046         INSTRUCTION_IMUL__21,   //24
00047         INSTRUCTION_IMUL__22,   //25
00048         INSTRUCTION_IMUL__23,   //26
00049         INSTRUCTION_IMUL__24,   //27
00050         INSTRUCTION_MUL__1,     //28
00051         INSTRUCTION_MUL__11,    //29
00052         INSTRUCTION_MUL__12,    //30
00053         INSTRUCTION_MUL__2,     //31
00054         INSTRUCTION_MUL__21,    //32
00055         INSTRUCTION_MUL__22,    //33
00056         INSTRUCTION_MUL__3,     //34
00057         INSTRUCTION_MUL__31,    //35
00058         INSTRUCTION_MUL__32,    //36
00059         INSTRUCTION_CBW__1,     //37
00060         INSTRUCTION_CWD__1,     //38
00061         INSTRUCTION_CDQ__1,     //39
00062         INSTRUCTION_DIV__1,     //40
00063         INSTRUCTION_DIV__11,    //41
00064         INSTRUCTION_DIV__2,     //42
00065         INSTRUCTION_DIV__21,    //43
00066         INSTRUCTION_DIV__3,     //44
00067         INSTRUCTION_DIV__31,    //45
00068         INSTRUCTION_NULLAH__1,  //46
00069         INSTRUCTION_NULLDX__1,  //47
00070         INSTRUCTION_NULLEDX__1, //48
00071         INSTRUCTION_IDIV__1,    //49
00072         INSTRUCTION_IDIV__11,   //50
00073         INSTRUCTION_IDIV__2,    //51
00074         INSTRUCTION_IDIV__21,   //52
00075         INSTRUCTION_IDIV__3,    //53
00076         INSTRUCTION_IDIV__31,   //54
00077         INSTRUCTION_NEG__1,     //55
00078         INSTRUCTION_SHL__1,     //56
00079         INSTRUCTION_SHR__1,     //57
00080         INSTRUCTION_SAL__1,     //58
00081         INSTRUCTION_SAR__1,     //59
00082         INSTRUCTION_AND__1,     //60
00083         INSTRUCTION_AND__11,    //61
00084         INSTRUCTION_AND__12,    //62
00085         INSTRUCTION_AND__13,    //63
00086         INSTRUCTION_AND__14,    //64
00087         INSTRUCTION_AND__2,     //65
00088         INSTRUCTION_OR__1,      //66
00089         INSTRUCTION_OR__11,     //67
00090         INSTRUCTION_OR__12,     //68
00091         INSTRUCTION_OR__13,     //69
00092         INSTRUCTION_OR__14,     //70
00093         INSTRUCTION_XOR__1,     //71
00094         INSTRUCTION_XOR__11,    //72
00095         INSTRUCTION_XOR__12,    //73
00096         INSTRUCTION_XOR__13,    //74
00097         INSTRUCTION_XOR__14,    //75
00098         INSTRUCTION_XOR__2,     //76
00099         INSTRUCTION_NOT__1,     //77
00100         INSTRUCTION_CONVERT__1, //78
00101         INSTRUCTION_CONVERT__5, //79
00102         INSTRUCTION_CONVERT__2, //80
00103         INSTRUCTION_CONVERT__3, //81
00104         INSTRUCTION_MOVZX__1,   //82
00105         INSTRUCTION_MOVZX__2,   //83
00106         INSTRUCTION_MOVZX__3,   //84
00107         INSTRUCTION_MOVZX__4,   //85
00108         INSTRUCTION_MOVZX__5,   //86
00109         INSTRUCTION_MOVZX__6,   //87
00110         INSTRUCTION_MOVSX__1,   //88
00111         INSTRUCTION_MOVSX__11,  //89
00112         INSTRUCTION_MOVSX__2,   //90
00113         INSTRUCTION_MOVSX__21,  //91
00114         INSTRUCTION_LEA__1,     //92
00115         INSTRUCTION_CMP__1,     //93
00116         INSTRUCTION_CMP__2,     //94
00117         INSTRUCTION_CMP__21,    //95
00118         INSTRUCTION_CMP__22,    //96
00119         INSTRUCTION_CMP__23,    //97
00120         INSTRUCTION_CMP__24,    //98
00121         INSTRUCTION_JMP__1,     //99
00122         INSTRUCTION_JA__1,      //100
00123         INSTRUCTION_JZ__1,      //101
00124         INSTRUCTION_JG__1,      //102
00125         INSTRUCTION_JL__1,      //103
00126         INSTRUCTION_JB__1,      //104
00127         INSTRUCTION_JE__1,      //105
00128         INSTRUCTION_JNG__1,     //106
00129         INSTRUCTION_JNA__1,     //107
00130         INSTRUCTION_JNL__1,     //108
00131         INSTRUCTION_JNB__1,     //109
00132         INSTRUCTION_JNE__1,     //110
00133         INSTRUCTION_SETG__1,    //111
00134         INSTRUCTION_SETA__1,    //112
00135         INSTRUCTION_SETL__1,    //113
00136         INSTRUCTION_SETB__1,    //114
00137         INSTRUCTION_SETE__1,    //115
00138         INSTRUCTION_SETNG__1,   //116
00139         INSTRUCTION_SETNA__1,   //117
00140         INSTRUCTION_SETNL__1,   //118
00141         INSTRUCTION_SETNB__1,   //119
00142         INSTRUCTION_SETNE__1,   //120
00143         INSTRUCTION_SETNZ__1,   //121
00144         INSTRUCTION_PUSH__1,    //122
00145         INSTRUCTION_PUSH__2,    //123
00146         INSTRUCTION_PUSH__3,    //124
00147         INSTRUCTION_POP__1,     //125
00148         INSTRUCTION_NOP__1,     //126
00149         INSTRUCTION_ESPADD__1,  //127
00150         INSTRUCTION_BACKUPESP__1,       //128
00151         INSTRUCTION_CALL__1,    //129
00152         INSTRUCTION_PROLOGUE__1,        //130
00153         INSTRUCTION_EPILOGUE__1,        //131
00154         INSTRUCTION_LEAVE__1,   //132
00155         INSTRUCTION_RET__1,     //133
00156         TIIT_TERMINATOR 
00157 };
00158 
00159 
00160 /*!
00161         \brief Id of instruction operand.
00162         
00163         Operand is referenced by its id within instruction group.
00164 */
00165 enum tm_instr_op_id_type {
00166         NO_OPERAND_ID,
00167         I_1,
00168         I_2,
00169         I_3,
00170         I_4,
00171         I_5,
00172         I_6,
00173         I_7,
00174         I_8,
00175         I_9,
00176         O_1,
00177         O_2,
00178         O_3,
00179         O_4,
00180         O_5,
00181         O_6,
00182         O_7,
00183         O_8,
00184         O_9,
00185         TIOIT_TERMINATOR
00186 };
00187 
00188 /*!
00189         \brief Ids of user defined properties.
00190 */
00191 enum tm_instr_property_key_type {
00192         NO_PROPERTY_KEY,
00193         PROPERTY_TEST_SIGNED,
00194         TIPKT_TERMINATOR
00195 };
00196 
00197 
00198 end_package(instructions);
00199 end_package(md);
00200 
00201 package(std);
00202 
00203 specialize_objectize_for_enum( ::lestes::md::instructions::tm_instr_op_id_type );
00204 specialize_objectize_for_enum( ::lestes::md::instructions::tm_instr_id_type );
00205 specialize_objectize_for_enum( ::lestes::md::instructions::tm_instr_property_key_type );
00206 
00207 end_package(std);
00208 end_package(lestes);
00209 
00210 #endif

Generated on Mon Feb 12 18:23:42 2007 for lestes by doxygen 1.5.1-20070107