X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=opcodes%2Fcrx-opc.c;h=5834f81dda5433f6d6aa74fb6f92d67151ece526;hb=30d0a63681c24106d4ea3239be4bbd72a0b67646;hp=e076d3b67a1cbdd3d05b335bcf02c1b07c8a0ec5;hpb=9b201bb5e5daa9b4f783e6ece9cbfbdbf9f1d6f4;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/crx-opc.c b/opcodes/crx-opc.c index e076d3b67a..5834f81dda 100644 --- a/opcodes/crx-opc.c +++ b/opcodes/crx-opc.c @@ -1,5 +1,5 @@ /* crx-opc.c -- Table of opcodes for the CRX processor. - Copyright 2004, 2007 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Tomer Levi NSC, Israel. Originally written for GAS 2.12 by Tomer Levi. @@ -543,16 +543,16 @@ const inst crx_instruction[] = /* CO-processor extensions. */ /* opc12 c4 opc4 ui4 disps9 */ - {"bcop", 2, 0x30107, 12, COP_BRANCH_INS | FMT_4 | RELAXABLE, + {"bcop", 2, 0x30107, 12, COP_BRANCH_INS | FMT_4 | RELAXABLE, {{ui4,8}, {ui4,16}, {disps9,0}}}, /* opc12 c4 opc4 ui4 disps25 */ - {"bcop", 3, 0x31107, 12, COP_BRANCH_INS | FMT_4 | RELAXABLE, + {"bcop", 3, 0x31107, 12, COP_BRANCH_INS | FMT_4 | RELAXABLE, {{ui4,8}, {ui4,16}, {disps25,0}}}, /* opc12 c4 opc4 cpdo r r */ - {"cpdop", 2, 0x3010B, 12, COP_REG_INS | FMT_4, + {"cpdop", 2, 0x3010B, 12, COP_REG_INS | FMT_4, {{ui4,16}, {ui4,8}, {regr,4}, {regr,0}}}, /* opc12 c4 opc4 cpdo r r cpdo16 */ - {"cpdop", 3, 0x3110B, 12, COP_REG_INS | FMT_4, + {"cpdop", 3, 0x3110B, 12, COP_REG_INS | FMT_4, {{ui4,16}, {ui4,8}, {regr,4}, {regr,0}, {ui16,16}}}, /* esc16 r procreg */ {"mtpr", 2, 0x3009, 16, NO_TYPE_INS, {{regr8,8}, {regr8,0}}}, @@ -566,9 +566,9 @@ const inst crx_instruction[] = {"cinv", 2, 0x3010000, 4, NO_TYPE_INS, {{ui4,0}}}, /* opc9 ui5 ui5 ui5 r r */ - {"ram", 2, 0x7C, 23, NO_TYPE_INS, + {"ram", 2, 0x7C, 23, NO_TYPE_INS, {{ui5,18}, {ui5,13}, {ui5,8}, {regr,4}, {regr,0}}}, - {"rim", 2, 0x7D, 23, NO_TYPE_INS, + {"rim", 2, 0x7D, 23, NO_TYPE_INS, {{ui5,18}, {ui5,13}, {ui5,8}, {regr,4}, {regr,0}}}, /* opc9 ui3 r */ @@ -587,8 +587,11 @@ const int crx_num_opcodes = ARRAY_SIZE (crx_instruction); For example : REG(u4, 0x84, CRX_U_REGTYPE) is interpreted as : - {"u4", u4, 0x84, CRX_U_REGTYPE} */ -#define REG(NAME, N, TYPE) {STRINGX(NAME), {NAME}, N, TYPE} + {"u4", u4, 0x84, CRX_U_REGTYPE} + The union initializer (second member) always refers to the first + member of the union, so cast NAME to that type to avoid possible + compiler warnings when used for non-CRX_R_REGTYPE cases. */ +#define REG(NAME, N, TYPE) {STRINGX(NAME), {(reg) NAME}, N, TYPE} const reg_entry crx_regtab[] = { @@ -701,15 +704,15 @@ The value in entry is mapped to the value Example (for N=5): cst4_map[5]=-4 -->> 5 */ -const long cst4_map[] = +const int crx_cst4_map[] = { 0, 1, 2, 3, 4, -4, -1, 7, 8, 16, 32, 20, 12, 48 }; -const int cst4_maps = ARRAY_SIZE (cst4_map); +const int crx_cst4_maps = ARRAY_SIZE (crx_cst4_map); /* CRX instructions that don't have arguments. */ -const char* no_op_insn[] = +const char* crx_no_op_insn[] = { "di", "ei", "eiwait", "nop", "retx", "wait", NULL };