[BACK]Return to score-datadep.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / external / gpl3 / binutils / dist / include / opcode

Annotation of src/external/gpl3/binutils/dist/include/opcode/score-datadep.h, Revision 1.1

1.1     ! skrll       1: /* score-datadep.h -- Score Instructions data dependency table
        !             2:    Copyright 2006 Free Software Foundation, Inc.
        !             3:    Contributed by:
        !             4:    Mei Ligang (ligang@sunnorth.com.cn)
        !             5:    Pei-Lin Tsai (pltsai@sunplus.com)
        !             6:
        !             7:    This file is part of GAS, the GNU Assembler.
        !             8:
        !             9:    GAS is free software; you can redistribute it and/or modify
        !            10:    it under the terms of the GNU General Public License as published by
        !            11:    the Free Software Foundation; either version 2, or (at your option)
        !            12:    any later version.
        !            13:
        !            14:    GAS is distributed in the hope that it will be useful,
        !            15:    but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            16:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            17:    GNU General Public License for more details.
        !            18:
        !            19:    You should have received a copy of the GNU General Public License
        !            20:    along with GAS; see the file COPYING.  If not, write to the Free
        !            21:    Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
        !            22:    Boston, MA 02110-1301, USA.  */
        !            23:
        !            24: #ifndef SCORE_DATA_DEPENDENCY_H
        !            25: #define SCORE_DATA_DEPENDENCY_H
        !            26:
        !            27: #define INSN_NAME_LEN 16
        !            28:
        !            29: enum insn_type_for_dependency
        !            30: {
        !            31:   D_pce,
        !            32:   D_cond_br,
        !            33:   D_cond_mv,
        !            34:   D_cached,
        !            35:   D_cachei,
        !            36:   D_ldst,
        !            37:   D_ldcombine,
        !            38:   D_mtcr,
        !            39:   D_mfcr,
        !            40:   D_mfsr,
        !            41:   D_mftlb,
        !            42:   D_mtptlb,
        !            43:   D_mtrtlb,
        !            44:   D_stlb,
        !            45:   D_all_insn
        !            46: };
        !            47:
        !            48: struct insn_to_dependency
        !            49: {
        !            50:   char *insn_name;
        !            51:   enum insn_type_for_dependency type;
        !            52: };
        !            53:
        !            54: struct data_dependency
        !            55: {
        !            56:   enum insn_type_for_dependency pre_insn_type;
        !            57:   char pre_reg[6];
        !            58:   enum insn_type_for_dependency cur_insn_type;
        !            59:   char cur_reg[6];
        !            60:   int bubblenum_7;
        !            61:   int bubblenum_5;
        !            62:   int warn_or_error;           /* warning - 0; error - 1  */
        !            63: };
        !            64:
        !            65: static const struct insn_to_dependency insn_to_dependency_table[] =
        !            66: {
        !            67:   /* pce instruction.  */
        !            68:   {"pce",       D_pce},
        !            69:   /* conditional branch instruction.  */
        !            70:   {"bcs",       D_cond_br},
        !            71:   {"bcc",       D_cond_br},
        !            72:   {"bgtu",      D_cond_br},
        !            73:   {"bleu",      D_cond_br},
        !            74:   {"beq",       D_cond_br},
        !            75:   {"bne",       D_cond_br},
        !            76:   {"bgt",       D_cond_br},
        !            77:   {"ble",       D_cond_br},
        !            78:   {"bge",       D_cond_br},
        !            79:   {"blt",       D_cond_br},
        !            80:   {"bmi",       D_cond_br},
        !            81:   {"bpl",       D_cond_br},
        !            82:   {"bvs",       D_cond_br},
        !            83:   {"bvc",       D_cond_br},
        !            84:   {"bcsl",      D_cond_br},
        !            85:   {"bccl",      D_cond_br},
        !            86:   {"bgtul",     D_cond_br},
        !            87:   {"bleul",     D_cond_br},
        !            88:   {"beql",      D_cond_br},
        !            89:   {"bnel",      D_cond_br},
        !            90:   {"bgtl",      D_cond_br},
        !            91:   {"blel",      D_cond_br},
        !            92:   {"bgel",      D_cond_br},
        !            93:   {"bltl",      D_cond_br},
        !            94:   {"bmil",      D_cond_br},
        !            95:   {"bpll",      D_cond_br},
        !            96:   {"bvsl",      D_cond_br},
        !            97:   {"bvcl",      D_cond_br},
        !            98:   {"bcs!",      D_cond_br},
        !            99:   {"bcc!",      D_cond_br},
        !           100:   {"bgtu!",     D_cond_br},
        !           101:   {"bleu!",     D_cond_br},
        !           102:   {"beq!",      D_cond_br},
        !           103:   {"bne!",      D_cond_br},
        !           104:   {"bgt!",      D_cond_br},
        !           105:   {"ble!",      D_cond_br},
        !           106:   {"bge!",      D_cond_br},
        !           107:   {"blt!",      D_cond_br},
        !           108:   {"bmi!",      D_cond_br},
        !           109:   {"bpl!",      D_cond_br},
        !           110:   {"bvs!",      D_cond_br},
        !           111:   {"bvc!",      D_cond_br},
        !           112:   {"brcs",      D_cond_br},
        !           113:   {"brcc",      D_cond_br},
        !           114:   {"brgtu",     D_cond_br},
        !           115:   {"brleu",     D_cond_br},
        !           116:   {"breq",      D_cond_br},
        !           117:   {"brne",      D_cond_br},
        !           118:   {"brgt",      D_cond_br},
        !           119:   {"brle",      D_cond_br},
        !           120:   {"brge",      D_cond_br},
        !           121:   {"brlt",      D_cond_br},
        !           122:   {"brmi",      D_cond_br},
        !           123:   {"brpl",      D_cond_br},
        !           124:   {"brvs",      D_cond_br},
        !           125:   {"brvc",      D_cond_br},
        !           126:   {"brcsl",     D_cond_br},
        !           127:   {"brccl",     D_cond_br},
        !           128:   {"brgtul",    D_cond_br},
        !           129:   {"brleul",    D_cond_br},
        !           130:   {"breql",     D_cond_br},
        !           131:   {"brnel",     D_cond_br},
        !           132:   {"brgtl",     D_cond_br},
        !           133:   {"brlel",     D_cond_br},
        !           134:   {"brgel",     D_cond_br},
        !           135:   {"brltl",     D_cond_br},
        !           136:   {"brmil",     D_cond_br},
        !           137:   {"brpll",     D_cond_br},
        !           138:   {"brvsl",     D_cond_br},
        !           139:   {"brvcl",     D_cond_br},
        !           140:   {"brcs!",     D_cond_br},
        !           141:   {"brcc!",     D_cond_br},
        !           142:   {"brgtu!",    D_cond_br},
        !           143:   {"brleu!",    D_cond_br},
        !           144:   {"breq!",     D_cond_br},
        !           145:   {"brne!",     D_cond_br},
        !           146:   {"brgt!",     D_cond_br},
        !           147:   {"brle!",     D_cond_br},
        !           148:   {"brge!",     D_cond_br},
        !           149:   {"brlt!",     D_cond_br},
        !           150:   {"brmi!",     D_cond_br},
        !           151:   {"brpl!",     D_cond_br},
        !           152:   {"brvs!",     D_cond_br},
        !           153:   {"brvc!",     D_cond_br},
        !           154:   {"brcsl!",    D_cond_br},
        !           155:   {"brccl!",    D_cond_br},
        !           156:   {"brgtul!",   D_cond_br},
        !           157:   {"brleul!",   D_cond_br},
        !           158:   {"breql!",    D_cond_br},
        !           159:   {"brnel!",    D_cond_br},
        !           160:   {"brgtl!",    D_cond_br},
        !           161:   {"brlel!",    D_cond_br},
        !           162:   {"brgel!",    D_cond_br},
        !           163:   {"brltl!",    D_cond_br},
        !           164:   {"brmil!",    D_cond_br},
        !           165:   {"brpll!",    D_cond_br},
        !           166:   {"brvsl!",    D_cond_br},
        !           167:   {"brvcl!",    D_cond_br},
        !           168:   /* conditional move instruction.  */
        !           169:   {"mvcs",      D_cond_mv},
        !           170:   {"mvcc",      D_cond_mv},
        !           171:   {"mvgtu",     D_cond_mv},
        !           172:   {"mvleu",     D_cond_mv},
        !           173:   {"mveq",      D_cond_mv},
        !           174:   {"mvne",      D_cond_mv},
        !           175:   {"mvgt",      D_cond_mv},
        !           176:   {"mvle",      D_cond_mv},
        !           177:   {"mvge",      D_cond_mv},
        !           178:   {"mvlt",      D_cond_mv},
        !           179:   {"mvmi",      D_cond_mv},
        !           180:   {"mvpl",      D_cond_mv},
        !           181:   {"mvvs",      D_cond_mv},
        !           182:   {"mvvc",      D_cond_mv},
        !           183:   /* move spectial instruction.  */
        !           184:   {"mtcr",      D_mtcr},
        !           185:   {"mftlb",     D_mftlb},
        !           186:   {"mtptlb",    D_mtptlb},
        !           187:   {"mtrtlb",    D_mtrtlb},
        !           188:   {"stlb",      D_stlb},
        !           189:   {"mfcr",      D_mfcr},
        !           190:   {"mfsr",      D_mfsr},
        !           191:   /* cache instruction.  */
        !           192:   {"cache 8",   D_cached},
        !           193:   {"cache 9",   D_cached},
        !           194:   {"cache 10",  D_cached},
        !           195:   {"cache 11",  D_cached},
        !           196:   {"cache 12",  D_cached},
        !           197:   {"cache 13",  D_cached},
        !           198:   {"cache 14",  D_cached},
        !           199:   {"cache 24",  D_cached},
        !           200:   {"cache 26",  D_cached},
        !           201:   {"cache 27",  D_cached},
        !           202:   {"cache 29",  D_cached},
        !           203:   {"cache 30",  D_cached},
        !           204:   {"cache 31",  D_cached},
        !           205:   {"cache 0",   D_cachei},
        !           206:   {"cache 1",   D_cachei},
        !           207:   {"cache 2",   D_cachei},
        !           208:   {"cache 3",   D_cachei},
        !           209:   {"cache 4",   D_cachei},
        !           210:   {"cache 16",  D_cachei},
        !           211:   {"cache 17",  D_cachei},
        !           212:   /* load/store instruction.  */
        !           213:   {"lb",        D_ldst},
        !           214:   {"lbu",       D_ldst},
        !           215:   {"lbu!",      D_ldst},
        !           216:   {"lbup!",     D_ldst},
        !           217:   {"lh",        D_ldst},
        !           218:   {"lhu",       D_ldst},
        !           219:   {"lh!",       D_ldst},
        !           220:   {"lhp!",      D_ldst},
        !           221:   {"lw",        D_ldst},
        !           222:   {"lw!",       D_ldst},
        !           223:   {"lwp!",      D_ldst},
        !           224:   {"sb",        D_ldst},
        !           225:   {"sb!",       D_ldst},
        !           226:   {"sbp!",      D_ldst},
        !           227:   {"sh",        D_ldst},
        !           228:   {"sh!",       D_ldst},
        !           229:   {"shp!",      D_ldst},
        !           230:   {"sw",        D_ldst},
        !           231:   {"sw!",       D_ldst},
        !           232:   {"swp!",      D_ldst},
        !           233:   {"alw",       D_ldst},
        !           234:   {"asw",       D_ldst},
        !           235:   {"push!",     D_ldst},
        !           236:   {"pushhi!",   D_ldst},
        !           237:   {"pop!",      D_ldst},
        !           238:   {"pophi!",    D_ldst},
        !           239:   {"ldc1",      D_ldst},
        !           240:   {"ldc2",      D_ldst},
        !           241:   {"ldc3",      D_ldst},
        !           242:   {"stc1",      D_ldst},
        !           243:   {"stc2",      D_ldst},
        !           244:   {"stc3",      D_ldst},
        !           245:   {"scb",       D_ldst},
        !           246:   {"scw",       D_ldst},
        !           247:   {"sce",       D_ldst},
        !           248:   /* load combine instruction.  */
        !           249:   {"lcb",       D_ldcombine},
        !           250:   {"lcw",       D_ldcombine},
        !           251:   {"lce",       D_ldcombine},
        !           252: };
        !           253:
        !           254: static const struct data_dependency data_dependency_table[] =
        !           255: {
        !           256:   /* Condition register.  */
        !           257:   {D_mtcr, "cr1", D_pce, "", 2, 1, 1},
        !           258:   {D_mtcr, "cr1", D_cond_br, "", 1, 0, 1},
        !           259:   {D_mtcr, "cr1", D_cond_mv, "", 1, 0, 1},
        !           260:   /* Status regiser.  */
        !           261:   {D_mtcr, "cr0", D_all_insn, "", 5, 4, 0},
        !           262:   /* CCR regiser.  */
        !           263:   {D_mtcr, "cr4", D_all_insn, "", 6, 5, 0},
        !           264:   /* EntryHi/EntryLo register.  */
        !           265:   {D_mftlb, "", D_mtptlb, "", 1, 1, 1},
        !           266:   {D_mftlb, "", D_mtrtlb, "", 1, 1, 1},
        !           267:   {D_mftlb, "", D_stlb, "", 1, 1,1},
        !           268:   {D_mftlb, "", D_mfcr, "cr11", 1, 1, 1},
        !           269:   {D_mftlb, "", D_mfcr, "cr12", 1, 1, 1},
        !           270:   /* Index register.  */
        !           271:   {D_stlb, "", D_mtptlb, "", 1, 1, 1},
        !           272:   {D_stlb, "", D_mftlb, "", 1, 1, 1},
        !           273:   {D_stlb, "", D_mfcr, "cr8", 2, 2, 1},
        !           274:   /* Cache.  */
        !           275:   {D_cached, "", D_ldst, "", 1, 1, 0},
        !           276:   {D_cached, "", D_ldcombine, "", 1, 1, 0},
        !           277:   {D_cachei, "", D_all_insn, "", 5, 4, 0},
        !           278:   /* Load combine.  */
        !           279:   {D_ldcombine, "", D_mfsr, "sr1", 3, 3, 1},
        !           280: };
        !           281:
        !           282: #endif

CVSweb <webmaster@jp.NetBSD.org>