GDB (API)
|
00001 /* Configuration for the Xtensa architecture for GDB, the GNU debugger. 00002 00003 Copyright (C) 2003-2013 Free Software Foundation, Inc. 00004 00005 This file is part of GDB. 00006 00007 This program is free software; you can redistribute it and/or modify 00008 it under the terms of the GNU General Public License as published by 00009 the Free Software Foundation; either version 3 of the License, or 00010 (at your option) any later version. 00011 00012 This program is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 00019 00020 #define XTENSA_CONFIG_VERSION 0x60 00021 00022 #include "xtensa-config.h" 00023 #include "xtensa-tdep.h" 00024 00025 00026 00027 /* Masked registers. */ 00028 xtensa_reg_mask_t xtensa_submask0[] = { { 42, 0, 4 } }; 00029 const xtensa_mask_t xtensa_mask0 = { 1, xtensa_submask0 }; 00030 xtensa_reg_mask_t xtensa_submask1[] = { { 42, 5, 1 } }; 00031 const xtensa_mask_t xtensa_mask1 = { 1, xtensa_submask1 }; 00032 xtensa_reg_mask_t xtensa_submask2[] = { { 42, 18, 1 } }; 00033 const xtensa_mask_t xtensa_mask2 = { 1, xtensa_submask2 }; 00034 xtensa_reg_mask_t xtensa_submask3[] = { { 42, 6, 2 } }; 00035 const xtensa_mask_t xtensa_mask3 = { 1, xtensa_submask3 }; 00036 xtensa_reg_mask_t xtensa_submask4[] = { { 42, 4, 1 } }; 00037 const xtensa_mask_t xtensa_mask4 = { 1, xtensa_submask4 }; 00038 xtensa_reg_mask_t xtensa_submask5[] = { { 42, 16, 2 } }; 00039 const xtensa_mask_t xtensa_mask5 = { 1, xtensa_submask5 }; 00040 xtensa_reg_mask_t xtensa_submask6[] = { { 42, 8, 4 } }; 00041 const xtensa_mask_t xtensa_mask6 = { 1, xtensa_submask6 }; 00042 xtensa_reg_mask_t xtensa_submask7[] = { { 37, 12, 20 } }; 00043 const xtensa_mask_t xtensa_mask7 = { 1, xtensa_submask7 }; 00044 xtensa_reg_mask_t xtensa_submask8[] = { { 37, 0, 1 } }; 00045 const xtensa_mask_t xtensa_mask8 = { 1, xtensa_submask8 }; 00046 xtensa_reg_mask_t xtensa_submask9[] = { { 86, 8, 4 } }; 00047 const xtensa_mask_t xtensa_mask9 = { 1, xtensa_submask9 }; 00048 xtensa_reg_mask_t xtensa_submask10[] = { { 47, 24, 8 } }; 00049 const xtensa_mask_t xtensa_mask10 = { 1, xtensa_submask10 }; 00050 xtensa_reg_mask_t xtensa_submask11[] = { { 47, 16, 8 } }; 00051 const xtensa_mask_t xtensa_mask11 = { 1, xtensa_submask11 }; 00052 xtensa_reg_mask_t xtensa_submask12[] = { { 47, 8, 8 } }; 00053 const xtensa_mask_t xtensa_mask12 = { 1, xtensa_submask12 }; 00054 xtensa_reg_mask_t xtensa_submask13[] = { { 48, 16, 2 } }; 00055 const xtensa_mask_t xtensa_mask13 = { 1, xtensa_submask13 }; 00056 xtensa_reg_mask_t xtensa_submask14[] = { { 49, 16, 2 } }; 00057 const xtensa_mask_t xtensa_mask14 = { 1, xtensa_submask14 }; 00058 xtensa_reg_mask_t xtensa_submask15[] = { { 45, 22, 10 } }; 00059 const xtensa_mask_t xtensa_mask15 = { 1, xtensa_submask15 }; 00060 00061 00062 /* Register map. */ 00063 xtensa_register_t rmap[] = 00064 { 00065 /* idx ofs bi sz al targno flags cp typ group name */ 00066 XTREG( 0, 0,32, 4, 4,0x0020,0x0006,-2, 9,0x0100,pc, 0,0,0,0,0,0) 00067 XTREG( 1, 4,32, 4, 4,0x0100,0x0006,-2, 1,0x0002,ar0, 0,0,0,0,0,0) 00068 XTREG( 2, 8,32, 4, 4,0x0101,0x0006,-2, 1,0x0002,ar1, 0,0,0,0,0,0) 00069 XTREG( 3, 12,32, 4, 4,0x0102,0x0006,-2, 1,0x0002,ar2, 0,0,0,0,0,0) 00070 XTREG( 4, 16,32, 4, 4,0x0103,0x0006,-2, 1,0x0002,ar3, 0,0,0,0,0,0) 00071 XTREG( 5, 20,32, 4, 4,0x0104,0x0006,-2, 1,0x0002,ar4, 0,0,0,0,0,0) 00072 XTREG( 6, 24,32, 4, 4,0x0105,0x0006,-2, 1,0x0002,ar5, 0,0,0,0,0,0) 00073 XTREG( 7, 28,32, 4, 4,0x0106,0x0006,-2, 1,0x0002,ar6, 0,0,0,0,0,0) 00074 XTREG( 8, 32,32, 4, 4,0x0107,0x0006,-2, 1,0x0002,ar7, 0,0,0,0,0,0) 00075 XTREG( 9, 36,32, 4, 4,0x0108,0x0006,-2, 1,0x0002,ar8, 0,0,0,0,0,0) 00076 XTREG( 10, 40,32, 4, 4,0x0109,0x0006,-2, 1,0x0002,ar9, 0,0,0,0,0,0) 00077 XTREG( 11, 44,32, 4, 4,0x010a,0x0006,-2, 1,0x0002,ar10, 0,0,0,0,0,0) 00078 XTREG( 12, 48,32, 4, 4,0x010b,0x0006,-2, 1,0x0002,ar11, 0,0,0,0,0,0) 00079 XTREG( 13, 52,32, 4, 4,0x010c,0x0006,-2, 1,0x0002,ar12, 0,0,0,0,0,0) 00080 XTREG( 14, 56,32, 4, 4,0x010d,0x0006,-2, 1,0x0002,ar13, 0,0,0,0,0,0) 00081 XTREG( 15, 60,32, 4, 4,0x010e,0x0006,-2, 1,0x0002,ar14, 0,0,0,0,0,0) 00082 XTREG( 16, 64,32, 4, 4,0x010f,0x0006,-2, 1,0x0002,ar15, 0,0,0,0,0,0) 00083 XTREG( 17, 68,32, 4, 4,0x0110,0x0006,-2, 1,0x0002,ar16, 0,0,0,0,0,0) 00084 XTREG( 18, 72,32, 4, 4,0x0111,0x0006,-2, 1,0x0002,ar17, 0,0,0,0,0,0) 00085 XTREG( 19, 76,32, 4, 4,0x0112,0x0006,-2, 1,0x0002,ar18, 0,0,0,0,0,0) 00086 XTREG( 20, 80,32, 4, 4,0x0113,0x0006,-2, 1,0x0002,ar19, 0,0,0,0,0,0) 00087 XTREG( 21, 84,32, 4, 4,0x0114,0x0006,-2, 1,0x0002,ar20, 0,0,0,0,0,0) 00088 XTREG( 22, 88,32, 4, 4,0x0115,0x0006,-2, 1,0x0002,ar21, 0,0,0,0,0,0) 00089 XTREG( 23, 92,32, 4, 4,0x0116,0x0006,-2, 1,0x0002,ar22, 0,0,0,0,0,0) 00090 XTREG( 24, 96,32, 4, 4,0x0117,0x0006,-2, 1,0x0002,ar23, 0,0,0,0,0,0) 00091 XTREG( 25,100,32, 4, 4,0x0118,0x0006,-2, 1,0x0002,ar24, 0,0,0,0,0,0) 00092 XTREG( 26,104,32, 4, 4,0x0119,0x0006,-2, 1,0x0002,ar25, 0,0,0,0,0,0) 00093 XTREG( 27,108,32, 4, 4,0x011a,0x0006,-2, 1,0x0002,ar26, 0,0,0,0,0,0) 00094 XTREG( 28,112,32, 4, 4,0x011b,0x0006,-2, 1,0x0002,ar27, 0,0,0,0,0,0) 00095 XTREG( 29,116,32, 4, 4,0x011c,0x0006,-2, 1,0x0002,ar28, 0,0,0,0,0,0) 00096 XTREG( 30,120,32, 4, 4,0x011d,0x0006,-2, 1,0x0002,ar29, 0,0,0,0,0,0) 00097 XTREG( 31,124,32, 4, 4,0x011e,0x0006,-2, 1,0x0002,ar30, 0,0,0,0,0,0) 00098 XTREG( 32,128,32, 4, 4,0x011f,0x0006,-2, 1,0x0002,ar31, 0,0,0,0,0,0) 00099 XTREG( 33,132,32, 4, 4,0x0200,0x0006,-2, 2,0x1100,lbeg, 0,0,0,0,0,0) 00100 XTREG( 34,136,32, 4, 4,0x0201,0x0006,-2, 2,0x1100,lend, 0,0,0,0,0,0) 00101 XTREG( 35,140,32, 4, 4,0x0202,0x0006,-2, 2,0x1100,lcount, 0,0,0,0,0,0) 00102 XTREG( 36,144, 6, 4, 4,0x0203,0x0006,-2, 2,0x1100,sar, 0,0,0,0,0,0) 00103 XTREG( 37,148,32, 4, 4,0x0205,0x0006,-2, 2,0x1100,litbase, 0,0,0,0,0,0) 00104 XTREG( 38,152, 3, 4, 4,0x0248,0x0006,-2, 2,0x1002,windowbase, 0,0,0,0,0,0) 00105 XTREG( 39,156, 8, 4, 4,0x0249,0x0006,-2, 2,0x1002,windowstart, 0,0,0,0,0,0) 00106 XTREG( 40,160,32, 4, 4,0x02b0,0x0002,-2, 2,0x1000,sr176, 0,0,0,0,0,0) 00107 XTREG( 41,164,32, 4, 4,0x02d0,0x0002,-2, 2,0x1000,sr208, 0,0,0,0,0,0) 00108 XTREG( 42,168,19, 4, 4,0x02e6,0x0006,-2, 2,0x1100,ps, 0,0,0,0,0,0) 00109 XTREG( 43,172,32, 4, 4,0x03e7,0x0006,-2, 3,0x0110,threadptr, 0,0,0,0,0,0) 00110 XTREG( 44,176,32, 4, 4,0x020c,0x0006,-1, 2,0x1100,scompare1, 0,0,0,0,0,0) 00111 XTREG( 45,180,32, 4, 4,0x0253,0x0007,-2, 2,0x1000,ptevaddr, 0,0,0,0,0,0) 00112 XTREG( 46,184,32, 4, 4,0x0259,0x000d,-2, 2,0x1000,mmid, 0,0,0,0,0,0) 00113 XTREG( 47,188,32, 4, 4,0x025a,0x0007,-2, 2,0x1000,rasid, 0,0,0,0,0,0) 00114 XTREG( 48,192,18, 4, 4,0x025b,0x0007,-2, 2,0x1000,itlbcfg, 0,0,0,0,0,0) 00115 XTREG( 49,196,18, 4, 4,0x025c,0x0007,-2, 2,0x1000,dtlbcfg, 0,0,0,0,0,0) 00116 XTREG( 50,200, 2, 4, 4,0x0260,0x0007,-2, 2,0x1000,ibreakenable,0,0,0,0,0,0) 00117 XTREG( 51,204,32, 4, 4,0x0268,0x0007,-2, 2,0x1000,ddr, 0,0,0,0,0,0) 00118 XTREG( 52,208,32, 4, 4,0x0280,0x0007,-2, 2,0x1000,ibreaka0, 0,0,0,0,0,0) 00119 XTREG( 53,212,32, 4, 4,0x0281,0x0007,-2, 2,0x1000,ibreaka1, 0,0,0,0,0,0) 00120 XTREG( 54,216,32, 4, 4,0x0290,0x0007,-2, 2,0x1000,dbreaka0, 0,0,0,0,0,0) 00121 XTREG( 55,220,32, 4, 4,0x0291,0x0007,-2, 2,0x1000,dbreaka1, 0,0,0,0,0,0) 00122 XTREG( 56,224,32, 4, 4,0x02a0,0x0007,-2, 2,0x1000,dbreakc0, 0,0,0,0,0,0) 00123 XTREG( 57,228,32, 4, 4,0x02a1,0x0007,-2, 2,0x1000,dbreakc1, 0,0,0,0,0,0) 00124 XTREG( 58,232,32, 4, 4,0x02b1,0x0007,-2, 2,0x1000,epc1, 0,0,0,0,0,0) 00125 XTREG( 59,236,32, 4, 4,0x02b2,0x0007,-2, 2,0x1000,epc2, 0,0,0,0,0,0) 00126 XTREG( 60,240,32, 4, 4,0x02b3,0x0007,-2, 2,0x1000,epc3, 0,0,0,0,0,0) 00127 XTREG( 61,244,32, 4, 4,0x02b4,0x0007,-2, 2,0x1000,epc4, 0,0,0,0,0,0) 00128 XTREG( 62,248,32, 4, 4,0x02b5,0x0007,-2, 2,0x1000,epc5, 0,0,0,0,0,0) 00129 XTREG( 63,252,32, 4, 4,0x02b6,0x0007,-2, 2,0x1000,epc6, 0,0,0,0,0,0) 00130 XTREG( 64,256,32, 4, 4,0x02b7,0x0007,-2, 2,0x1000,epc7, 0,0,0,0,0,0) 00131 XTREG( 65,260,32, 4, 4,0x02c0,0x0007,-2, 2,0x1000,depc, 0,0,0,0,0,0) 00132 XTREG( 66,264,19, 4, 4,0x02c2,0x0007,-2, 2,0x1000,eps2, 0,0,0,0,0,0) 00133 XTREG( 67,268,19, 4, 4,0x02c3,0x0007,-2, 2,0x1000,eps3, 0,0,0,0,0,0) 00134 XTREG( 68,272,19, 4, 4,0x02c4,0x0007,-2, 2,0x1000,eps4, 0,0,0,0,0,0) 00135 XTREG( 69,276,19, 4, 4,0x02c5,0x0007,-2, 2,0x1000,eps5, 0,0,0,0,0,0) 00136 XTREG( 70,280,19, 4, 4,0x02c6,0x0007,-2, 2,0x1000,eps6, 0,0,0,0,0,0) 00137 XTREG( 71,284,19, 4, 4,0x02c7,0x0007,-2, 2,0x1000,eps7, 0,0,0,0,0,0) 00138 XTREG( 72,288,32, 4, 4,0x02d1,0x0007,-2, 2,0x1000,excsave1, 0,0,0,0,0,0) 00139 XTREG( 73,292,32, 4, 4,0x02d2,0x0007,-2, 2,0x1000,excsave2, 0,0,0,0,0,0) 00140 XTREG( 74,296,32, 4, 4,0x02d3,0x0007,-2, 2,0x1000,excsave3, 0,0,0,0,0,0) 00141 XTREG( 75,300,32, 4, 4,0x02d4,0x0007,-2, 2,0x1000,excsave4, 0,0,0,0,0,0) 00142 XTREG( 76,304,32, 4, 4,0x02d5,0x0007,-2, 2,0x1000,excsave5, 0,0,0,0,0,0) 00143 XTREG( 77,308,32, 4, 4,0x02d6,0x0007,-2, 2,0x1000,excsave6, 0,0,0,0,0,0) 00144 XTREG( 78,312,32, 4, 4,0x02d7,0x0007,-2, 2,0x1000,excsave7, 0,0,0,0,0,0) 00145 XTREG( 79,316, 8, 4, 4,0x02e0,0x0007,-2, 2,0x1000,cpenable, 0,0,0,0,0,0) 00146 XTREG( 80,320,22, 4, 4,0x02e2,0x000b,-2, 2,0x1000,interrupt, 0,0,0,0,0,0) 00147 XTREG( 81,324,22, 4, 4,0x02e2,0x000d,-2, 2,0x1000,intset, 0,0,0,0,0,0) 00148 XTREG( 82,328,22, 4, 4,0x02e3,0x000d,-2, 2,0x1000,intclear, 0,0,0,0,0,0) 00149 XTREG( 83,332,22, 4, 4,0x02e4,0x0007,-2, 2,0x1000,intenable, 0,0,0,0,0,0) 00150 XTREG( 84,336,32, 4, 4,0x02e7,0x0007,-2, 2,0x1000,vecbase, 0,0,0,0,0,0) 00151 XTREG( 85,340, 6, 4, 4,0x02e8,0x0007,-2, 2,0x1000,exccause, 0,0,0,0,0,0) 00152 XTREG( 86,344,12, 4, 4,0x02e9,0x0003,-2, 2,0x1000,debugcause, 0,0,0,0,0,0) 00153 XTREG( 87,348,32, 4, 4,0x02ea,0x000f,-2, 2,0x1000,ccount, 0,0,0,0,0,0) 00154 XTREG( 88,352,32, 4, 4,0x02eb,0x0003,-2, 2,0x1000,prid, 0,0,0,0,0,0) 00155 XTREG( 89,356,32, 4, 4,0x02ec,0x000f,-2, 2,0x1000,icount, 0,0,0,0,0,0) 00156 XTREG( 90,360, 4, 4, 4,0x02ed,0x0007,-2, 2,0x1000,icountlevel, 0,0,0,0,0,0) 00157 XTREG( 91,364,32, 4, 4,0x02ee,0x0007,-2, 2,0x1000,excvaddr, 0,0,0,0,0,0) 00158 XTREG( 92,368,32, 4, 4,0x02f0,0x000f,-2, 2,0x1000,ccompare0, 0,0,0,0,0,0) 00159 XTREG( 93,372,32, 4, 4,0x02f1,0x000f,-2, 2,0x1000,ccompare1, 0,0,0,0,0,0) 00160 XTREG( 94,376,32, 4, 4,0x02f2,0x000f,-2, 2,0x1000,ccompare2, 0,0,0,0,0,0) 00161 XTREG( 95,380,32, 4, 4,0x02f4,0x0007,-2, 2,0x1000,misc0, 0,0,0,0,0,0) 00162 XTREG( 96,384,32, 4, 4,0x02f5,0x0007,-2, 2,0x1000,misc1, 0,0,0,0,0,0) 00163 XTREG( 97,388,32, 4, 4,0x0000,0x0006,-2, 8,0x0100,a0, 0,0,0,0,0,0) 00164 XTREG( 98,392,32, 4, 4,0x0001,0x0006,-2, 8,0x0100,a1, 0,0,0,0,0,0) 00165 XTREG( 99,396,32, 4, 4,0x0002,0x0006,-2, 8,0x0100,a2, 0,0,0,0,0,0) 00166 XTREG(100,400,32, 4, 4,0x0003,0x0006,-2, 8,0x0100,a3, 0,0,0,0,0,0) 00167 XTREG(101,404,32, 4, 4,0x0004,0x0006,-2, 8,0x0100,a4, 0,0,0,0,0,0) 00168 XTREG(102,408,32, 4, 4,0x0005,0x0006,-2, 8,0x0100,a5, 0,0,0,0,0,0) 00169 XTREG(103,412,32, 4, 4,0x0006,0x0006,-2, 8,0x0100,a6, 0,0,0,0,0,0) 00170 XTREG(104,416,32, 4, 4,0x0007,0x0006,-2, 8,0x0100,a7, 0,0,0,0,0,0) 00171 XTREG(105,420,32, 4, 4,0x0008,0x0006,-2, 8,0x0100,a8, 0,0,0,0,0,0) 00172 XTREG(106,424,32, 4, 4,0x0009,0x0006,-2, 8,0x0100,a9, 0,0,0,0,0,0) 00173 XTREG(107,428,32, 4, 4,0x000a,0x0006,-2, 8,0x0100,a10, 0,0,0,0,0,0) 00174 XTREG(108,432,32, 4, 4,0x000b,0x0006,-2, 8,0x0100,a11, 0,0,0,0,0,0) 00175 XTREG(109,436,32, 4, 4,0x000c,0x0006,-2, 8,0x0100,a12, 0,0,0,0,0,0) 00176 XTREG(110,440,32, 4, 4,0x000d,0x0006,-2, 8,0x0100,a13, 0,0,0,0,0,0) 00177 XTREG(111,444,32, 4, 4,0x000e,0x0006,-2, 8,0x0100,a14, 0,0,0,0,0,0) 00178 XTREG(112,448,32, 4, 4,0x000f,0x0006,-2, 8,0x0100,a15, 0,0,0,0,0,0) 00179 XTREG(113,452, 4, 4, 4,0x2008,0x0006,-2, 6,0x1010,psintlevel, 00180 0,0,&xtensa_mask0,0,0,0) 00181 XTREG(114,456, 1, 4, 4,0x2009,0x0006,-2, 6,0x1010,psum, 00182 0,0,&xtensa_mask1,0,0,0) 00183 XTREG(115,460, 1, 4, 4,0x200a,0x0006,-2, 6,0x1010,pswoe, 00184 0,0,&xtensa_mask2,0,0,0) 00185 XTREG(116,464, 2, 4, 4,0x200b,0x0006,-2, 6,0x1010,psring, 00186 0,0,&xtensa_mask3,0,0,0) 00187 XTREG(117,468, 1, 4, 4,0x200c,0x0006,-2, 6,0x1010,psexcm, 00188 0,0,&xtensa_mask4,0,0,0) 00189 XTREG(118,472, 2, 4, 4,0x200d,0x0006,-2, 6,0x1010,pscallinc, 00190 0,0,&xtensa_mask5,0,0,0) 00191 XTREG(119,476, 4, 4, 4,0x200e,0x0006,-2, 6,0x1010,psowb, 00192 0,0,&xtensa_mask6,0,0,0) 00193 XTREG(120,480,20, 4, 4,0x200f,0x0006,-2, 6,0x1010,litbaddr, 00194 0,0,&xtensa_mask7,0,0,0) 00195 XTREG(121,484, 1, 4, 4,0x2010,0x0006,-2, 6,0x1010,litben, 00196 0,0,&xtensa_mask8,0,0,0) 00197 XTREG(122,488, 4, 4, 4,0x2015,0x0006,-2, 6,0x1010,dbnum, 00198 0,0,&xtensa_mask9,0,0,0) 00199 XTREG(123,492, 8, 4, 4,0x2016,0x0006,-2, 6,0x1010,asid3, 00200 0,0,&xtensa_mask10,0,0,0) 00201 XTREG(124,496, 8, 4, 4,0x2017,0x0006,-2, 6,0x1010,asid2, 00202 0,0,&xtensa_mask11,0,0,0) 00203 XTREG(125,500, 8, 4, 4,0x2018,0x0006,-2, 6,0x1010,asid1, 00204 0,0,&xtensa_mask12,0,0,0) 00205 XTREG(126,504, 2, 4, 4,0x2019,0x0006,-2, 6,0x1010,instpgszid4, 00206 0,0,&xtensa_mask13,0,0,0) 00207 XTREG(127,508, 2, 4, 4,0x201a,0x0006,-2, 6,0x1010,datapgszid4, 00208 0,0,&xtensa_mask14,0,0,0) 00209 XTREG(128,512,10, 4, 4,0x201b,0x0006,-2, 6,0x1010,ptbase, 00210 0,0,&xtensa_mask15,0,0,0) 00211 XTREG_END 00212 }; 00213 00214 00215 00216 #ifdef XTENSA_CONFIG_INSTANTIATE 00217 XTENSA_CONFIG_INSTANTIATE(rmap,0) 00218 #endif 00219