Index: opcodes/crx-opc.c |
diff --git a/opcodes/crx-opc.c b/opcodes/crx-opc.c |
index 65e2e86cf77cdf48308ed2cce7ca099931fd68c1..6b10ac54407bbbe938a0926e539f3fd9c655d239 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, 2005, 2007, 2012 Free Software Foundation, Inc. |
+ Copyright 2004, 2005, 2007, 2012, 2013 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[] = |
{ |
@@ -709,7 +712,7 @@ const int cst4_map[] = |
const int cst4_maps = ARRAY_SIZE (cst4_map); |
/* CRX instructions that don't have arguments. */ |
-const char* no_op_insn[] = |
+const char* no_op_insn[] = |
{ |
"di", "ei", "eiwait", "nop", "retx", "wait", NULL |
}; |