This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[m32c] more gas relocs
- From: DJ Delorie <dj at redhat dot com>
- To: binutils at sources dot redhat dot com
- Date: Fri, 21 Oct 2005 20:04:27 -0400
- Subject: [m32c] more gas relocs
Missing entries found during exhaustive testing. Committed
* config/tc-m32c.c (md_cgen_lookup_reloc): Add more relocs. Print
names unstead of numbers.
Index: config/tc-m32c.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-m32c.c,v
retrieving revision 1.3
diff -p -U3 -r1.3 config/tc-m32c.c
--- config/tc-m32c.c 26 Jul 2005 03:21:52 -0000 1.3
+++ config/tc-m32c.c 22 Oct 2005 00:03:42 -0000
@@ -738,6 +738,12 @@ md_cgen_lookup_reloc (const CGEN_INSN *
int offset;
} op_reloc_table[] = {
+ /* PC-REL relocs for 8-bit fields. */
+ { M32C_OPERAND_LAB_16_8, BFD_RELOC_8_PCREL, 2 },
+ { M32C_OPERAND_LAB_24_8, BFD_RELOC_8_PCREL, 3 },
+ { M32C_OPERAND_LAB_32_8, BFD_RELOC_8_PCREL, 4 },
+ { M32C_OPERAND_LAB_40_8, BFD_RELOC_8_PCREL, 5 },
+
/* Absolute relocs for 8-bit fields. */
{ M32C_OPERAND_IMM_8_QI, BFD_RELOC_8, 1 },
{ M32C_OPERAND_IMM_16_QI, BFD_RELOC_8, 2 },
@@ -763,6 +769,10 @@ md_cgen_lookup_reloc (const CGEN_INSN *
{ M32C_OPERAND_IMM_16_HI, BFD_RELOC_16, 2 },
{ M32C_OPERAND_IMM_24_HI, BFD_RELOC_16, 3 },
{ M32C_OPERAND_IMM_32_HI, BFD_RELOC_16, 4 },
+ { M32C_OPERAND_IMM_40_HI, BFD_RELOC_16, 5 },
+ { M32C_OPERAND_IMM_48_HI, BFD_RELOC_16, 6 },
+ { M32C_OPERAND_IMM_56_HI, BFD_RELOC_16, 7 },
+ { M32C_OPERAND_IMM_64_HI, BFD_RELOC_16, 8 },
{ M32C_OPERAND_DSP_16_S16, BFD_RELOC_16, 2 },
{ M32C_OPERAND_DSP_24_S16, BFD_RELOC_16, 3 },
{ M32C_OPERAND_DSP_32_S16, BFD_RELOC_16, 4 },
@@ -771,14 +781,20 @@ md_cgen_lookup_reloc (const CGEN_INSN *
{ M32C_OPERAND_DSP_16_U16, BFD_RELOC_16, 2 },
{ M32C_OPERAND_DSP_24_U16, BFD_RELOC_16, 3 },
{ M32C_OPERAND_DSP_32_U16, BFD_RELOC_16, 4 },
+ { M32C_OPERAND_DSP_40_U16, BFD_RELOC_16, 5 },
+ { M32C_OPERAND_DSP_48_U16, BFD_RELOC_16, 6 },
/* Absolute relocs for 24-bit fields. */
{ M32C_OPERAND_LAB_8_24, BFD_RELOC_24, 1 },
+ { M32C_OPERAND_DSP_8_U24, BFD_RELOC_24, 1 },
{ M32C_OPERAND_DSP_16_U24, BFD_RELOC_24, 2 },
{ M32C_OPERAND_DSP_24_U24, BFD_RELOC_24, 3 },
{ M32C_OPERAND_DSP_32_U24, BFD_RELOC_24, 4 },
{ M32C_OPERAND_DSP_40_U24, BFD_RELOC_24, 5 },
- { M32C_OPERAND_DSP_8_U24, BFD_RELOC_24, 1 },
+ { M32C_OPERAND_DSP_48_U24, BFD_RELOC_24, 6 },
+ { M32C_OPERAND_DSP_16_U20, BFD_RELOC_24, 2 },
+ { M32C_OPERAND_DSP_24_U20, BFD_RELOC_24, 3 },
+ { M32C_OPERAND_DSP_32_U20, BFD_RELOC_24, 4 },
/* Absolute relocs for 32-bit fields. */
{ M32C_OPERAND_IMM_16_SI, BFD_RELOC_32, 2 },
@@ -809,8 +825,8 @@ md_cgen_lookup_reloc (const CGEN_INSN *
fprintf
(stderr,
- "Error: tc-m32c.c:md_cgen_lookup_reloc Unimplemented relocation for operand %d\n",
- operand->type);
+ "Error: tc-m32c.c:md_cgen_lookup_reloc Unimplemented relocation for operand %s\n",
+ operand->name);
return BFD_RELOC_NONE;
}