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

📄 tables.h

📁 uboot详细解读可用启动引导LINUX2.6内核
💻 H
📖 第 1 页 / 共 2 页
字号:
/* $Id$ */#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 + -