diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-arm.c | 18 | ||||
-rw-r--r-- | gold/ChangeLog | 5 | ||||
-rw-r--r-- | gold/arm.cc | 4 |
4 files changed, 21 insertions, 11 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2f39d1c..c1d01b7 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 fefc7db..081265c 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 76cb658..d5cdd32 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 1994329..a98004b 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 |