00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _SH64_OPC_INCLUDED_H
00023 #define _SH64_OPC_INCLUDED_H
00024
00025 typedef enum
00026 {
00027
00028 OFFSET_NONE = 0,
00029
00030
00031 OFFSET_4 = 4,
00032 OFFSET_9 = 9,
00033 OFFSET_10 = 10,
00034 OFFSET_20 = 20
00035 } shmedia_nibble_type;
00036
00037 typedef enum {
00038
00039 A_NONE = 0,
00040
00041
00042 A_GREG_M,
00043 A_GREG_N,
00044 A_GREG_D,
00045 A_FREG_G,
00046 A_FREG_H,
00047 A_FREG_F,
00048 A_DREG_G,
00049 A_DREG_H,
00050 A_DREG_F,
00051 A_FVREG_G,
00052 A_FVREG_H,
00053 A_FVREG_F,
00054 A_FMREG_G,
00055 A_FMREG_H,
00056 A_FMREG_F,
00057 A_FPREG_G,
00058 A_FPREG_H,
00059 A_FPREG_F,
00060 A_TREG_A,
00061 A_TREG_B,
00062 A_CREG_K,
00063 A_CREG_J,
00064
00065
00066 A_IMMM,
00067
00068
00069 A_REUSE_PREV,
00070
00071
00072 A_IMMU5,
00073
00074
00075 A_IMMS6,
00076
00077
00078 A_IMMS6BY32,
00079
00080
00081 A_IMMU6,
00082
00083
00084 A_IMMS10,
00085
00086
00087 A_IMMS10BY1,
00088
00089
00090 A_IMMS10BY2,
00091
00092
00093 A_IMMS10BY4,
00094
00095
00096 A_IMMS10BY8,
00097
00098
00099 A_IMMS16,
00100
00101
00102 A_IMMU16,
00103
00104
00105 A_PCIMMS16BY4,
00106
00107
00108
00109 A_PCIMMS16BY4_PT,
00110 } shmedia_arg_type;
00111
00112 typedef struct {
00113 char *name;
00114 shmedia_arg_type arg[4];
00115 shmedia_nibble_type nibbles[4];
00116 unsigned long opcode_base;
00117 } shmedia_opcode_info;
00118
00119 extern const shmedia_opcode_info shmedia_table[];
00120
00121 typedef struct {
00122 int cregno;
00123 char *name;
00124 } shmedia_creg_info;
00125
00126 extern const shmedia_creg_info shmedia_creg_table[];
00127
00128 #define SHMEDIA_LIKELY_BIT 0x00000200
00129 #define SHMEDIA_PT_OPC 0xe8000000
00130 #define SHMEDIA_PTB_BIT 0x04000000
00131 #define SHMEDIA_PTA_OPC 0xe8000000
00132 #define SHMEDIA_PTB_OPC 0xec000000
00133
00134
00135 #define SHMEDIA_PTREL_OPC 0x6bf50000
00136 #define SHMEDIA_MOVI_OPC 0xcc000000
00137 #define SHMEDIA_SHORI_OPC 0xc8000000
00138 #define SHMEDIA_ADDI_OPC 0xd0000000
00139 #define SHMEDIA_ADD_OPC 0x00090000
00140 #define SHMEDIA_NOP_OPC 0x6ff0fff0
00141 #define SHMEDIA_TEMP_REG 25
00142
00143 #endif