aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog9
-rw-r--r--bfd/elf32-msp430.c24
2 files changed, 21 insertions, 12 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ecd2842..2fce0a8 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2013-07-18 Travis Snoozy <quandary@remstate.com>
+
+ PR ld/15721
+ * elf32-msp430.c (R_MSP430_10_PCREL): Use 10-bit source and
+ destination masks.
+ * R_MSP430_2X_PCREL: Likewise.
+ * R_MSP430X_10_PCREL: Likewise.
+ * R_MSP430X_2X_PCREL: Likewise.
+
2013-07-18 Terry Guo <terry.guo@arm.com>
* elf32-arm.c (arm_type_of_stub): Don't use ST_BRANCH_TO_ARM for
diff --git a/bfd/elf32-msp430.c b/bfd/elf32-msp430.c
index 6f66282..2f7a3da 100644
--- a/bfd/elf32-msp430.c
+++ b/bfd/elf32-msp430.c
@@ -56,7 +56,7 @@ static reloc_howto_type elf_msp430_howto_table[] =
0xffffffff, /* dst_mask */
FALSE), /* pcrel_offset */
- /* A 13 bit PC relative relocation. */
+ /* A 10 bit PC relative relocation. */
HOWTO (R_MSP430_10_PCREL, /* type */
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
@@ -67,8 +67,8 @@ static reloc_howto_type elf_msp430_howto_table[] =
bfd_elf_generic_reloc, /* special_function */
"R_MSP430_10_PCREL", /* name */
FALSE, /* partial_inplace */
- 0xfff, /* src_mask */
- 0xfff, /* dst_mask */
+ 0x3ff, /* src_mask */
+ 0x3ff, /* dst_mask */
TRUE), /* pcrel_offset */
/* A 16 bit absolute relocation. */
@@ -131,7 +131,7 @@ static reloc_howto_type elf_msp430_howto_table[] =
0xffff, /* dst_mask */
TRUE), /* pcrel_offset */
- /* A 13 bit PC relative relocation for complicated polymorphs. */
+ /* A 10 bit PC relative relocation for complicated polymorphs. */
HOWTO (R_MSP430_2X_PCREL, /* type */
1, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
@@ -142,8 +142,8 @@ static reloc_howto_type elf_msp430_howto_table[] =
bfd_elf_generic_reloc, /* special_function */
"R_MSP430_2X_PCREL", /* name */
FALSE, /* partial_inplace */
- 0xfff, /* src_mask */
- 0xfff, /* dst_mask */
+ 0x3ff, /* src_mask */
+ 0x3ff, /* dst_mask */
TRUE), /* pcrel_offset */
/* A 16 bit relaxable relocation for command address. */
@@ -449,7 +449,7 @@ static reloc_howto_type elf_msp430x_howto_table[] =
EMPTY_HOWTO (R_MSP430_EHTYPE),
- /* A 13 bit PC relative relocation. */
+ /* A 10 bit PC relative relocation. */
HOWTO (R_MSP430X_10_PCREL, /* type */
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
@@ -460,11 +460,11 @@ static reloc_howto_type elf_msp430x_howto_table[] =
bfd_elf_generic_reloc, /* special_function */
"R_MSP430X_10_PCREL", /* name */
FALSE, /* partial_inplace */
- 0xfff, /* src_mask */
- 0xfff, /* dst_mask */
+ 0x3ff, /* src_mask */
+ 0x3ff, /* dst_mask */
TRUE), /* pcrel_offset */
- /* A 13 bit PC relative relocation for complicated polymorphs. */
+ /* A 10 bit PC relative relocation for complicated polymorphs. */
HOWTO (R_MSP430X_2X_PCREL, /* type */
1, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
@@ -475,8 +475,8 @@ static reloc_howto_type elf_msp430x_howto_table[] =
bfd_elf_generic_reloc, /* special_function */
"R_MSP430X_2X_PCREL", /* name */
FALSE, /* partial_inplace */
- 0xfff, /* src_mask */
- 0xfff, /* dst_mask */
+ 0x3ff, /* src_mask */
+ 0x3ff, /* dst_mask */
TRUE), /* pcrel_offset */
/* Together with a following reloc, allows for the difference