⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tables.h

📁 F:worksip2440a board可启动u-boot-like.tar.gz F:worksip2440a board可启动u-boot-like.tar.gz
💻 H
📖 第 1 页 / 共 2 页
字号:
/* $Id: tables.h,v 1.1.1.1 2005/06/27 17:05:54 linuxpark Exp $ */#ifndef TABLES_H#define TABLES_H/* This is only included by common/bedbug.c, and depends on the following * files to already be included *   common.h *   bedbug/bedbug.h *   bedbug/ppc.h *   bedbug/regs.h */struct operand operands[] = {  /*Field    Name     Bits  Shift  Hint 		   Position	*/  /*-----    ------   ----- -----  ---- 	           ------------ */  { O_AA,    "O_AA",    1,     1,  OH_SILENT },		/*   30 	*/  { O_BD,    "O_BD",   14,     2,  OH_ADDR },		/* 16-29	*/  { O_BI,    "O_BI",    5,    16,  0 },			/* 11-15	*/  { O_BO,    "O_BO",    5,    21,  0 },			/*  6-10	*/  { O_crbD,  "O_crbD",  5,    21,  0 },			/*  6-10	*/  { O_crbA,  "O_crbA",  5,    16,  0 },			/* 11-15	*/  { O_crbB,  "O_crbB",  5,    11,  0 },			/* 16-20	*/  { O_CRM,   "O_CRM",   8,    12,  0 },			/* 12-19	*/  { O_d,     "O_d",    15,     0,  OH_OFFSET },		/* 16-31	*/  { O_frC,   "O_frC",   5,     6,  0 },			/* 21-25	*/  { O_frD,   "O_frD",   5,    21,  0 },			/*  6-10	*/  { O_frS,   "O_frS",   5,    21,  0 },			/*  6-10	*/  { O_IMM,   "O_IMM",   4,    12,  0 },			/* 16-19	*/  { O_LI,    "O_LI",   24,     2,  OH_ADDR },		/*  6-29	*/  { O_LK,    "O_LK",    1,     0,  OH_SILENT },		/*   31		*/  { O_MB,    "O_MB",    5,     6,  0 },			/* 21-25	*/  { O_ME,    "O_ME",    5,     1,  0 },			/* 26-30	*/  { O_NB,    "O_NB",    5,    11,  0 },			/* 16-20	*/  { O_OE,    "O_OE",    1,    10,  OH_SILENT },		/*   21		*/  { O_rA,    "O_rA",    5,    16,  OH_REG },		/* 11-15	*/  { O_rB,    "O_rB",    5,    11,  OH_REG },		/* 16-20	*/  { O_Rc,    "O_Rc",    1,     0,  OH_SILENT },		/*   31		*/  { O_rD,    "O_rD",    5,    21,  OH_REG },		/*  6-10	*/  { O_rS,    "O_rS",    5,    21,  OH_REG },		/*  6-10	*/  { O_SH,    "O_SH",    5,    11,  0 },			/* 16-20	*/  { O_SIMM,  "O_SIMM", 16,     0,  0 },			/* 16-31	*/  { O_SR,    "O_SR",    4,    16,  0 },			/* 12-15	*/  { O_TO,    "O_TO",    5,    21,  0 },			/*  6-10	*/  { O_UIMM,  "O_UIMM", 16,     0,  0 },			/* 16-31	*/  { O_crfD,  "O_crfD",  3,    23,  0 },			/*  6- 8	*/  { O_crfS,  "O_crfS",  3,    18,  0 },			/* 11-13	*/  { O_L,     "O_L",     1,    21,  0 },			/*   10		*/  { O_spr,   "O_spr",  10,    11,  OH_SPR },		/* 11-20	*/  { O_tbr,   "O_tbr",  10,    11,  OH_TBR },		/* 11-20	*/  { O_cr2,   "O_cr2",   0,     0,  OH_LITERAL },        /* "cr2"        */};const unsigned int n_operands = sizeof(operands) / sizeof(operands[0]);/* A note about the fields array in the opcodes structure:   The operands are listed in the order they appear in the output.   This table is arranged in numeric order of the opcode.  Note that some   opcodes have defined bits in odd places so not all forms of a command   will be in the same place.  This is done so that a binary search can be   done to find the opcodes.  Note that table D.2 in the MPC860 User's   Manual "Instructions Sorted by Opcode" does not account for these   bit locations */struct opcode opcodes[] = {  { D_OPCODE(3),           D_MASK,   {O_TO, O_rA, O_SIMM, 0},    0,               "twi",          0 },  { D_OPCODE(7),           D_MASK,   {O_rD, O_rA, O_SIMM, 0},    0,               "mulli",        0 },  { D_OPCODE(8),           D_MASK,   {O_rD, O_rA, O_SIMM, 0},    0,               "subfic",       0 },  { D_OPCODE(10),          D_MASK,   {O_crfD, O_L, O_rA, O_UIMM, 0},    0,               "cmpli",        0 },  { D_OPCODE(11),          D_MASK,   {O_crfD, O_L, O_rA, O_SIMM, 0},    0,               "cmpi",         0 },  { D_OPCODE(12),          D_MASK,   {O_rD, O_rA, O_SIMM, 0},    0,               "addic",        0 },  { D_OPCODE(13),          D_MASK,   {O_rD, O_rA, O_SIMM, 0},    0,               "addic.",       0 },  { D_OPCODE(14),          D_MASK,   {O_rD, O_rA, O_SIMM, 0},    0,               "addi",         H_RA0_IS_0 },  { D_OPCODE(15),          D_MASK,   {O_rD, O_rA, O_SIMM, 0},    0,               "addis",        H_RA0_IS_0|H_IMM_HIGH },  { B_OPCODE(16,0,0),      B_MASK,   {O_BO, O_BI, O_BD, O_AA, O_LK, 0},    handle_bc,       "bc",           H_RELATIVE },  { B_OPCODE(16,0,1),      B_MASK,   {O_BO, O_BI, O_BD, O_AA, O_LK, 0},    0,               "bcl",          H_RELATIVE },  { B_OPCODE(16,1,0),      B_MASK,   {O_BO, O_BI, O_BD, O_AA, O_LK, 0},    0,               "bca",          0 },  { B_OPCODE(16,1,1),      B_MASK,   {O_BO, O_BI, O_BD, O_AA, O_LK, 0},    0,               "bcla",         0 },  { SC_OPCODE(17),         SC_MASK,  {0},    0,               "sc",           0 },  { I_OPCODE(18,0,0),      I_MASK,   {O_LI, O_AA, O_LK, 0},    0,               "b",            H_RELATIVE },  { I_OPCODE(18,0,1),      I_MASK,   {O_LI, O_AA, O_LK, 0},    0,               "bl",           H_RELATIVE },  { I_OPCODE(18,1,0),      I_MASK,   {O_LI, O_AA, O_LK, 0},    0,               "ba",           0 },  { I_OPCODE(18,1,1),      I_MASK,   {O_LI, O_AA, O_LK, 0},    0,               "bla",          0 },  { XL_OPCODE(19,0,0),     XL_MASK,  {O_crfD, O_crfS},    0,               "mcrf",         0 },  { XL_OPCODE(19,16,0),    XL_MASK,  {O_BO, O_BI, O_LK, 0},    0,               "bclr",         0 },  { XL_OPCODE(19,16,1),    XL_MASK,  {O_BO, O_BI, O_LK, 0},    0,               "bclrl",        0 },  { XL_OPCODE(19,33,0),    XL_MASK,  {O_crbD, O_crbA, O_crbB, 0},    0,               "crnor",        0 },  { XL_OPCODE(19,50,0),    XL_MASK,  {0},    0,               "rfi",          0 },  { XL_OPCODE(19,129,0),   XL_MASK,  {O_crbD, O_crbA, O_crbB, 0},    0,               "crandc",       0 },  { XL_OPCODE(19,150,0),   XL_MASK,  {0},    0,               "isync",        0 },  { XL_OPCODE(19,193,0),   XL_MASK,  {O_crbD, O_crbA, O_crbB, 0},    0,               "crxor",        0 },  { XL_OPCODE(19,225,0),   XL_MASK,  {O_crbD, O_crbA, O_crbB, 0},    0,               "crnand",       0 },  { XL_OPCODE(19,257,0),   XL_MASK,  {O_crbD, O_crbA, O_crbB, 0},    0,               "crand",        0 },  { XL_OPCODE(19,289,0),   XL_MASK,  {O_crbD, O_crbA, O_crbB, 0},    0,               "creqv",        0 },  { XL_OPCODE(19,417,0),   XL_MASK,  {O_crbD, O_crbA, O_crbB, 0},    0,               "crorc",        0 },  { XL_OPCODE(19,449,0),   XL_MASK,  {O_crbD, O_crbA, O_crbB, 0},    0,               "cror",         0 },  { XL_OPCODE(19,528,0),   XL_MASK,  {O_BO, O_BI, O_LK, 0},    0,               "bcctr",        0 },  { XL_OPCODE(19,528,1),   XL_MASK,  {O_BO, O_BI, O_LK, 0},    0,               "bcctrl",       0 },  { M_OPCODE(20,0),        M_MASK,   {O_rA, O_rS, O_SH, O_MB, O_ME, O_Rc, 0},    0,               "rlwimi",       0 },  { M_OPCODE(20,1),        M_MASK,   {O_rA, O_rS, O_SH, O_MB, O_ME, O_Rc, 0},    0,               "rlwimi.",      0 },  { M_OPCODE(21,0),        M_MASK,   {O_rA, O_rS, O_SH, O_MB, O_ME, O_Rc, 0},    0,               "rlwinm",       0 },  { M_OPCODE(21,1),        M_MASK,   {O_rA, O_rS, O_SH, O_MB, O_ME, O_Rc, 0},    0,               "rlwinm.",      0 },  { M_OPCODE(23,0),        M_MASK,   {O_rA, O_rS, O_rB, O_MB, O_ME, O_Rc, 0},    0,               "rlwnm",        0 },  { M_OPCODE(23,1),        M_MASK,   {O_rA, O_rS, O_rB, O_MB, O_ME, O_Rc, 0},    0,               "rlwnm.",       0 },  { D_OPCODE(24),          D_MASK,   {O_rA, O_rS, O_UIMM, 0},    0,               "ori",          0 },  { D_OPCODE(25),          D_MASK,   {O_rA, O_rS, O_UIMM, 0},    0,               "oris",         H_IMM_HIGH },  { D_OPCODE(26),          D_MASK,   {O_rA, O_rS, O_UIMM, 0},    0,               "xori",         0 },  { D_OPCODE(27),          D_MASK,   {O_rA, O_rS, O_UIMM, 0},    0,               "xoris",        H_IMM_HIGH },  { D_OPCODE(28),          D_MASK,   {O_rA, O_rS, O_UIMM, 0},    0,               "andi.",        0 },  { D_OPCODE(29),          D_MASK,   {O_rA, O_rS, O_UIMM, 0},    0,               "andis.",       H_IMM_HIGH },  { X_OPCODE(31,0,0),      X_MASK,   {O_crfD, O_L, O_rA, O_rB, 0},    0,               "cmp",          0 },  { X_OPCODE(31,4,0),      X_MASK,   {O_TO, O_rA, O_rB, 0},    0,               "tw",           0 },  { XO_OPCODE(31,8,0,0),   XO_MASK,  {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},    0,               "subfc",        0 },  { XO_OPCODE(31,8,0,1),   XO_MASK,  {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},    0,               "subfc.",       0 },  { XO_OPCODE(31,10,0,0),  XO_MASK,  {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},    0,               "addc",         0 },  { XO_OPCODE(31,10,0,1),  XO_MASK,  {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},    0,               "addc.",        0 },  { XO_OPCODE(31,11,0,0),  XO_MASK,  {O_rD, O_rA, O_rB, O_Rc, 0},    0,               "mulhwu",       0 },  { XO_OPCODE(31,11,0,1),  XO_MASK,  {O_rD, O_rA, O_rB, O_Rc, 0},    0,               "mulhwu.",      0 },  { X_OPCODE(31,19,0),     X_MASK,   {O_rD, 0},    0,               "mfcr",         0 },  { X_OPCODE(31,20,0),     X_MASK,   {O_rD, O_rA, O_rB, 0},    0,               "lwarx",        H_RA0_IS_0 },  { X_OPCODE(31,23,0),     X_MASK,   {O_rD, O_rA, O_rB, 0},    0,               "lwzx",         H_RA0_IS_0 },  { X_OPCODE(31,24,0),     X_MASK,   {O_rA, O_rS, O_rB, O_Rc, 0},    0,               "slw",          0 },  { X_OPCODE(31,24,1),     X_MASK,   {O_rA, O_rS, O_rB, O_Rc, 0},    0,               "slw.",         0 },  { X_OPCODE(31,26,0),     X_MASK,   {O_rA, O_rS, O_Rc, 0 },    0,               "cntlzw",       0 },  { X_OPCODE(31,26,1),     X_MASK,   {O_rA, O_rS, O_Rc, 0},    0,               "cntlzw.",      0 },  { X_OPCODE(31,28,0),     X_MASK,   {O_rA, O_rS, O_rB, O_Rc, 0},    0,               "and",          0 },  { X_OPCODE(31,28,1),     X_MASK,   {O_rA, O_rS, O_rB, O_Rc, 0},    0,               "and.",         0 },  { X_OPCODE(31,32,0),     X_MASK,   {O_crfD, O_L, O_rA, O_rB, 0},    0,               "cmpl",         0 },  { XO_OPCODE(31,40,0,0),  XO_MASK,  {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},    0,               "subf",         0 },  { XO_OPCODE(31,40,0,1),  XO_MASK,  {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},    0,               "subf.",        0 },  { X_OPCODE(31,54,0),     X_MASK,   {O_rA, O_rB, 0},    0,               "dcbst",        H_RA0_IS_0 },  { X_OPCODE(31,55,0),     X_MASK,   {O_rD, O_rA, O_rB, 0},    0,               "lwzux",        0 },  { X_OPCODE(31,60,0),     X_MASK,   {O_rA, O_rS, O_rB, O_Rc, 0},    0,               "andc",         0 },  { X_OPCODE(31,60,1),     X_MASK,   {O_rA, O_rS, O_rB, O_Rc, 0},    0,               "andc.",        0 },  { XO_OPCODE(31,75,0,0),  XO_MASK,  {O_rD, O_rA, O_rB, O_Rc, 0},    0,               "mulhw",        0 },  { XO_OPCODE(31,75,0,1),  XO_MASK,  {O_rD, O_rA, O_rB, O_Rc, 0},    0,               "mulhw.",       0 },  { X_OPCODE(31,83,0),     X_MASK,   {O_rD, 0},    0,               "mfmsr",        0 },  { X_OPCODE(31,86,0),     X_MASK,   {O_rA, O_rB, 0},    0,               "dcbf",         H_RA0_IS_0 },  { X_OPCODE(31,87,0),     X_MASK,   {O_rD, O_rA, O_rB, 0},    0,               "lbzx",         H_RA0_IS_0 },  { XO_OPCODE(31,104,0,0), XO_MASK,  {O_rD, O_rA, O_OE, O_Rc, 0},    0,               "neg",          0 },  { XO_OPCODE(31,104,0,1), XO_MASK,  {O_rD, O_rA, O_OE, O_Rc, 0},    0,               "neg.",         0 },  { X_OPCODE(31,119,0),    X_MASK,   {O_rD, O_rA, O_rB, 0},    0,               "lbzux",        0 },  { X_OPCODE(31,124,0),    X_MASK,   {O_rA, O_rS, O_rB, O_Rc, 0},    0,               "nor",          0 },  { X_OPCODE(31,124,1),    X_MASK,   {O_rA, O_rS, O_rB, O_Rc, 0},    0,               "nor.",         0 },  { XO_OPCODE(31,136,0,0), XO_MASK,  {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},    0,               "subfe",        0 },  { XO_OPCODE(31,136,0,1), XO_MASK,  {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},    0,               "subfe.",       0 },  { XO_OPCODE(31,138,0,0), XO_MASK,  {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},    0,               "adde",         0 },  { XO_OPCODE(31,138,0,1), XO_MASK,  {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},    0,               "adde.",        0 },  { XFX_OPCODE(31,144,0),  XFX_MASK, {O_CRM, O_rS, 0},    0,               "mtcrf",        0 },  { X_OPCODE(31,146,0),    X_MASK,   {O_rS, 0},    0,               "mtmsr",        0 },  { X_OPCODE(31,150,1),    X_MASK,   {O_rS, O_rA, O_rB, 0},    0,               "stwcx.",       0 },  { X_OPCODE(31,151,0),    X_MASK,   {O_rS, O_rA, O_rB, 0},    0,               "stwx",         0 },  { X_OPCODE(31,183,0),    X_MASK,   {O_rS, O_rA, O_rB, 0},    0,               "stwux",        0 },  { XO_OPCODE(31,200,0,0), XO_MASK,  {O_rD, O_rA, O_OE, O_Rc, 0},    0,               "subfze",       0 },  { XO_OPCODE(31,200,0,1), XO_MASK,  {O_rD, O_rA, O_OE, O_Rc, 0},    0,               "subfze.",      0 },  { XO_OPCODE(31,202,0,0), XO_MASK,  {O_rD, O_rA, O_OE, O_Rc, 0},    0,               "addze",        0 },  { XO_OPCODE(31,202,0,1), XO_MASK,  {O_rD, O_rA, O_OE, O_Rc, 0},    0,               "addze.",       0 },  { X_OPCODE(31,210,0),    X_MASK,   {O_SR, O_rS, 0},    0,               "mtsr",         0 },  { X_OPCODE(31,215,0),    X_MASK,   {O_rS, O_rA, O_rB, 0},    0,               "stbx",         H_RA0_IS_0 },  { XO_OPCODE(31,232,0,0), XO_MASK,  {O_rD, O_rA, O_OE, O_Rc, 0},    0,               "subfme",       0 },  { XO_OPCODE(31,232,0,1), XO_MASK,  {O_rD, O_rA, O_OE, O_Rc, 0},    0,               "subfme.",      0 },  { XO_OPCODE(31,234,0,0), XO_MASK,  {O_rD, O_rA, O_OE, O_Rc, 0},    0,               "addme",        0 },  { XO_OPCODE(31,234,0,1), XO_MASK,  {O_rD, O_rA, O_OE, O_Rc, 0},    0,               "addme.",       0 },  { XO_OPCODE(31,235,0,0), XO_MASK,  {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},    0,               "mullw",        0 },  { XO_OPCODE(31,235,0,1), XO_MASK,  {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},    0,               "mullw.",       0 },  { X_OPCODE(31,242,0),    X_MASK,   {O_rS, O_rB, 0},    0,               "mtsrin",       0 },  { X_OPCODE(31,246,0),    X_MASK,   {O_rA, O_rB, 0},    0,               "dcbtst",       H_RA0_IS_0 },  { X_OPCODE(31,247,0),    X_MASK,   {O_rS, O_rA, O_rB, 0},    0,               "stbux",        0 },  { XO_OPCODE(31,266,0,0), XO_MASK,  {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},    0,               "add",          0 },  { XO_OPCODE(31,266,0,1), XO_MASK,  {O_rD, O_rA, O_rB, O_OE, O_Rc, 0},    0,               "add.",         0 },  { X_OPCODE(31,278,0),    X_MASK,   {O_rA, O_rB, 0},    0,               "dcbt",         H_RA0_IS_0 },  { X_OPCODE(31,279,0),    X_MASK,   {O_rD, O_rA, O_rB, 0},    0,               "lhzx",         H_RA0_IS_0 },  { X_OPCODE(31,284,0),    X_MASK,   {O_rA, O_rS, O_rB, O_Rc, 0},    0,               "eqv",          0 },  { X_OPCODE(31,284,1),    X_MASK,   {O_rA, O_rS, O_rB, O_Rc, 0},    0,               "eqv.",         0 },  { X_OPCODE(31,306,0),    X_MASK,   {O_rB, 0},    0,               "tlbie",        0 },  { X_OPCODE(31,310,0),    X_MASK,   {O_rD, O_rA, O_rB, 0},    0,               "eciwx",        H_RA0_IS_0 },  { X_OPCODE(31,311,0),    X_MASK,   {O_rD, O_rA, O_rB, 0},    0,               "lhzux",        0 },  { X_OPCODE(31,316,0),    X_MASK,   {O_rA, O_rS, O_rB, O_Rc, 0},    0,               "xor",          0 },  { X_OPCODE(31,316,1),    X_MASK,   {O_rA, O_rS, O_rB, O_Rc, 0},    0,               "xor.",         0 },  { XFX_OPCODE(31,339,0),  XFX_MASK, {O_rD, O_spr, 0},    0,               "mfspr",        0 },  { X_OPCODE(31,343,0),    X_MASK,   {O_rD, O_rA, O_rB, 0},    0,               "lhax",         H_RA0_IS_0 },  { X_OPCODE(31,370,0),    X_MASK,   {0},    0,               "tlbia",        0 },  { XFX_OPCODE(31,371,0),  XFX_MASK, {O_rD, O_tbr, 0},

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -