aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2012-11-15 00:30:09 +0000
committerRoland McGrath <roland@gnu.org>2012-11-15 00:30:09 +0000
commitddc051e28b3eeb03111979c1cd8901b76393c180 (patch)
treeb4f63c3220015c51aec18973681b2277632974a5
parent8070faa83ac7cb3ca984b2c7da5c44d45cb131c8 (diff)
downloadbinutils-ddc051e28b3eeb03111979c1cd8901b76393c180.tar.gz
bfd/
* elf32-arm.c (elf32_arm_nacl_plt0_entry): Use bic rather than bfc instruction for data sandboxing. gold/ * arm.cc (Output_data_plt_arm_nacl::first_plt_entry): Use bic rather than bfc instruction for data sandboxing.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-arm.c18
-rw-r--r--gold/ChangeLog5
-rw-r--r--gold/arm.cc4
4 files changed, 21 insertions, 11 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 2f39d1ca7..c1d01b702 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2012-11-14 Roland McGrath <mcgrathr@google.com>
+
+ * elf32-arm.c (elf32_arm_nacl_plt0_entry): Use bic rather than bfc
+ instruction for data sandboxing.
+
2012-11-14 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_read_main)
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index fefc7db0c..081265c52 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -2209,21 +2209,21 @@ static const bfd_vma elf32_arm_nacl_plt0_entry [] =
0xe08cc00f, /* add ip, ip, pc */
0xe52dc008, /* str ip, [sp, #-8]! */
/* Second bundle: */
- 0xe7dfcf1f, /* bfc ip, #30, #2 */
- 0xe59cc000, /* ldr ip, [ip] */
+ 0xe3ccc103, /* bic ip, ip, #0xc0000000 */
+ 0xe59cc000, /* ldr ip, [ip] */
0xe3ccc13f, /* bic ip, ip, #0xc000000f */
- 0xe12fff1c, /* bx ip */
+ 0xe12fff1c, /* bx ip */
/* Third bundle: */
- 0xe320f000, /* nop */
- 0xe320f000, /* nop */
- 0xe320f000, /* nop */
+ 0xe320f000, /* nop */
+ 0xe320f000, /* nop */
+ 0xe320f000, /* nop */
/* .Lplt_tail: */
0xe50dc004, /* str ip, [sp, #-4] */
/* Fourth bundle: */
- 0xe7dfcf1f, /* bfc ip, #30, #2 */
- 0xe59cc000, /* ldr ip, [ip] */
+ 0xe3ccc103, /* bic ip, ip, #0xc0000000 */
+ 0xe59cc000, /* ldr ip, [ip] */
0xe3ccc13f, /* bic ip, ip, #0xc000000f */
- 0xe12fff1c, /* bx ip */
+ 0xe12fff1c, /* bx ip */
};
#define ARM_NACL_PLT_TAIL_OFFSET (11 * 4)
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 76cb658a1..d5cdd32f6 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,8 @@
+2012-11-14 Roland McGrath <mcgrathr@google.com>
+
+ * arm.cc (Output_data_plt_arm_nacl::first_plt_entry): Use bic rather
+ than bfc instruction for data sandboxing.
+
2012-11-08 Alan Modra <amodra@gmail.com>
* po/POTFILES.in: Regenerate.
diff --git a/gold/arm.cc b/gold/arm.cc
index 19943295a..a98004b82 100644
--- a/gold/arm.cc
+++ b/gold/arm.cc
@@ -12218,7 +12218,7 @@ const uint32_t Output_data_plt_arm_nacl<big_endian>::first_plt_entry[16] =
0xe08cc00f, // add ip, ip, pc
0xe52dc008, // str ip, [sp, #-8]!
// Second bundle:
- 0xe7dfcf1f, // bfc ip, #30, #2
+ 0xe3ccc103, // bic ip, ip, #0xc0000000
0xe59cc000, // ldr ip, [ip]
0xe3ccc13f, // bic ip, ip, #0xc000000f
0xe12fff1c, // bx ip
@@ -12229,7 +12229,7 @@ const uint32_t Output_data_plt_arm_nacl<big_endian>::first_plt_entry[16] =
// .Lplt_tail:
0xe50dc004, // str ip, [sp, #-4]
// Fourth bundle:
- 0xe7dfcf1f, // bfc ip, #30, #2
+ 0xe3ccc103, // bic ip, ip, #0xc0000000
0xe59cc000, // ldr ip, [ip]
0xe3ccc13f, // bic ip, ip, #0xc000000f
0xe12fff1c, // bx ip