OSDN Git Service

bfd/
authorjules <jules>
Wed, 25 Aug 2010 12:37:27 +0000 (12:37 +0000)
committerjules <jules>
Wed, 25 Aug 2010 12:37:27 +0000 (12:37 +0000)
    * elf32-arm.c (arm_stub_required_alignment): New.
    (arm_build_one_stub): Use above to partition stubs.
    (make_branch_to_a8_stub): Use arm_stub_a8_veneer_lwm not
    arm_stub_a8_veneer_b_cond.

    ld/testsuite/
    * ld-arm/arm-elf.exp (armelftests): Add cortex-a8-fix-blx-bcond.s.
    * ld-arm/cortex-a8-fix-blx-bcond.s: New.
    * ld-arm/cortex-a8-fix-blx-bcond.d: New.

bfd/ChangeLog
bfd/elf32-arm.c
ld/testsuite/ChangeLog
ld/testsuite/ld-arm/arm-elf.exp
ld/testsuite/ld-arm/cortex-a8-fix-blx-bcond.d [new file with mode: 0644]
ld/testsuite/ld-arm/cortex-a8-fix-blx-bcond.s [new file with mode: 0644]

index 3dc8434..dc696e7 100644 (file)
@@ -1,3 +1,10 @@
+2010-08-25  Julian Brown  <julian@codesourcery.com>
+
+       * elf32-arm.c (arm_stub_required_alignment): New.
+       (arm_build_one_stub): Use above to partition stubs.
+       (make_branch_to_a8_stub): Use arm_stub_a8_veneer_lwm not
+       arm_stub_a8_veneer_b_cond.
+
 2010-08-25  Alan Modra  <amodra@gmail.com>
 
        * aout-arm.c (MY(bfd_reloc_type_lookup)): Use bfd_arch_bits_per_address.
index 0cd1e64..390c0af 100644 (file)
@@ -3475,6 +3475,36 @@ static bfd_reloc_status_type elf32_arm_final_link_relocate
    Elf_Internal_Rela *, bfd_vma, struct bfd_link_info *, asection *,
    const char *, int, struct elf_link_hash_entry *, bfd_boolean *, char **);
 
+static unsigned int
+arm_stub_required_alignment (enum elf32_arm_stub_type stub_type)
+{
+  switch (stub_type)
+    {
+    case arm_stub_a8_veneer_b_cond:
+    case arm_stub_a8_veneer_b:
+    case arm_stub_a8_veneer_bl:
+      return 2;
+
+    case arm_stub_long_branch_any_any:
+    case arm_stub_long_branch_v4t_arm_thumb:
+    case arm_stub_long_branch_thumb_only:
+    case arm_stub_long_branch_v4t_thumb_thumb:
+    case arm_stub_long_branch_v4t_thumb_arm:
+    case arm_stub_short_branch_v4t_thumb_arm:
+    case arm_stub_long_branch_any_arm_pic:
+    case arm_stub_long_branch_any_thumb_pic:
+    case arm_stub_long_branch_v4t_thumb_thumb_pic:
+    case arm_stub_long_branch_v4t_arm_thumb_pic:
+    case arm_stub_long_branch_v4t_thumb_arm_pic:
+    case arm_stub_long_branch_thumb_only_pic:
+    case arm_stub_a8_veneer_blx:
+      return 4;
+    
+    default:
+      abort ();  /* Should be unreachable.  */
+    }
+}
+
 static bfd_boolean
 arm_build_one_stub (struct bfd_hash_entry *gen_entry,
                    void * in_arg)
@@ -3506,9 +3536,8 @@ arm_build_one_stub (struct bfd_hash_entry *gen_entry,
   stub_sec = stub_entry->stub_sec;
 
   if ((globals->fix_cortex_a8 < 0)
-      != (stub_entry->stub_type >= arm_stub_a8_veneer_lwm))
-    /* We have to do the a8 fixes last, as they are less aligned than
-       the other veneers.  */
+      != (arm_stub_required_alignment (stub_entry->stub_type) == 2))
+    /* We have to do less-strictly-aligned fixes last.  */
     return TRUE;
 
   /* Make a note of the offset within the stubs for this entry.  */
@@ -13356,7 +13385,7 @@ make_branch_to_a8_stub (struct bfd_hash_entry *gen_entry,
   data = (struct a8_branch_to_stub_data *) in_arg;
 
   if (stub_entry->target_section != data->writing_section
-      || stub_entry->stub_type < arm_stub_a8_veneer_b_cond)
+      || stub_entry->stub_type < arm_stub_a8_veneer_lwm)
     return TRUE;
 
   contents = data->contents;
index eeed7da..85063c3 100644 (file)
@@ -1,3 +1,9 @@
+2010-08-25  Julian Brown  <julian@codesourcery.com>
+
+       * ld-arm/arm-elf.exp (armelftests): Add cortex-a8-fix-blx-bcond.s.
+       * ld-arm/cortex-a8-fix-blx-bcond.s: New.
+       * ld-arm/cortex-a8-fix-blx-bcond.d: New.
+
 2010-08-24  H.J. Lu  <hongjiu.lu@intel.com>
 
        * ld-x86-64/x86-64.exp: Fix typos.
index c23da54..ef5f0f4 100644 (file)
@@ -221,6 +221,10 @@ set armelftests {
      "-EL -mcpu=cortex-a8" {cortex-a8-fix-hdr.s}
      {{objdump -dr cortex-a8-fix-hdr.d}}
      "cortex-a8-fix-hdr"}
+    {"Cortex-A8 erratum fix, blx.w and b<cond>.w together"
+     "-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-fix-blx-bcond.s}
+     {{objdump -dr cortex-a8-fix-blx-bcond.d}}
+     "cortex-a8-fix-blx-bcond"}
     {"Unwinding and -gc-sections" "-gc-sections" "" {gc-unwind.s}
      {{objdump -sj.data gc-unwind.d}}
      "gc-unwind"}
diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-blx-bcond.d b/ld/testsuite/ld-arm/cortex-a8-fix-blx-bcond.d
new file mode 100644 (file)
index 0000000..692a606
--- /dev/null
@@ -0,0 +1,1107 @@
+
+.*:     file format .*
+
+
+Disassembly of section \.text:
+
+00008f00 <_start>:
+    8f00:      bf00            nop
+    8f02:      eb01 0002       add\.w  r0, r1, r2
+    8f06:      f47f affc       bne\.w  8f02 <_start\+0x2>
+    8f0a:      eb01 0002       add\.w  r0, r1, r2
+    8f0e:      f47f aff8       bne\.w  8f02 <_start\+0x2>
+    8f12:      eb01 0002       add\.w  r0, r1, r2
+    8f16:      f47f aff4       bne\.w  8f02 <_start\+0x2>
+    8f1a:      eb01 0002       add\.w  r0, r1, r2
+    8f1e:      f47f aff0       bne\.w  8f02 <_start\+0x2>
+    8f22:      eb01 0002       add\.w  r0, r1, r2
+    8f26:      f47f affc       bne\.w  8f22 <_start\+0x22>
+    8f2a:      eb01 0002       add\.w  r0, r1, r2
+    8f2e:      f47f aff8       bne\.w  8f22 <_start\+0x22>
+    8f32:      eb01 0002       add\.w  r0, r1, r2
+    8f36:      f47f aff4       bne\.w  8f22 <_start\+0x22>
+    8f3a:      eb01 0002       add\.w  r0, r1, r2
+    8f3e:      f47f aff0       bne\.w  8f22 <_start\+0x22>
+    8f42:      eb01 0002       add\.w  r0, r1, r2
+    8f46:      f47f affc       bne\.w  8f42 <_start\+0x42>
+    8f4a:      eb01 0002       add\.w  r0, r1, r2
+    8f4e:      f47f aff8       bne\.w  8f42 <_start\+0x42>
+    8f52:      eb01 0002       add\.w  r0, r1, r2
+    8f56:      f47f aff4       bne\.w  8f42 <_start\+0x42>
+    8f5a:      eb01 0002       add\.w  r0, r1, r2
+    8f5e:      f47f aff0       bne\.w  8f42 <_start\+0x42>
+    8f62:      eb01 0002       add\.w  r0, r1, r2
+    8f66:      f47f affc       bne\.w  8f62 <_start\+0x62>
+    8f6a:      eb01 0002       add\.w  r0, r1, r2
+    8f6e:      f47f aff8       bne\.w  8f62 <_start\+0x62>
+    8f72:      eb01 0002       add\.w  r0, r1, r2
+    8f76:      f47f aff4       bne\.w  8f62 <_start\+0x62>
+    8f7a:      eb01 0002       add\.w  r0, r1, r2
+    8f7e:      f47f aff0       bne\.w  8f62 <_start\+0x62>
+    8f82:      eb01 0002       add\.w  r0, r1, r2
+    8f86:      f47f affc       bne\.w  8f82 <_start\+0x82>
+    8f8a:      eb01 0002       add\.w  r0, r1, r2
+    8f8e:      f47f aff8       bne\.w  8f82 <_start\+0x82>
+    8f92:      eb01 0002       add\.w  r0, r1, r2
+    8f96:      f47f aff4       bne\.w  8f82 <_start\+0x82>
+    8f9a:      eb01 0002       add\.w  r0, r1, r2
+    8f9e:      f47f aff0       bne\.w  8f82 <_start\+0x82>
+    8fa2:      eb01 0002       add\.w  r0, r1, r2
+    8fa6:      f47f affc       bne\.w  8fa2 <_start\+0xa2>
+    8faa:      eb01 0002       add\.w  r0, r1, r2
+    8fae:      f47f aff8       bne\.w  8fa2 <_start\+0xa2>
+    8fb2:      eb01 0002       add\.w  r0, r1, r2
+    8fb6:      f47f aff4       bne\.w  8fa2 <_start\+0xa2>
+    8fba:      eb01 0002       add\.w  r0, r1, r2
+    8fbe:      f47f aff0       bne\.w  8fa2 <_start\+0xa2>
+    8fc2:      eb01 0002       add\.w  r0, r1, r2
+    8fc6:      f47f affc       bne\.w  8fc2 <_start\+0xc2>
+    8fca:      eb01 0002       add\.w  r0, r1, r2
+    8fce:      f47f aff8       bne\.w  8fc2 <_start\+0xc2>
+    8fd2:      eb01 0002       add\.w  r0, r1, r2
+    8fd6:      f47f aff4       bne\.w  8fc2 <_start\+0xc2>
+    8fda:      eb01 0002       add\.w  r0, r1, r2
+    8fde:      f47f aff0       bne\.w  8fc2 <_start\+0xc2>
+    8fe2:      eb01 0002       add\.w  r0, r1, r2
+    8fe6:      f47f affc       bne\.w  8fe2 <_start\+0xe2>
+    8fea:      eb01 0002       add\.w  r0, r1, r2
+    8fee:      f47f aff8       bne\.w  8fe2 <_start\+0xe2>
+    8ff2:      eb01 0002       add\.w  r0, r1, r2
+    8ff6:      f47f aff4       bne\.w  8fe2 <_start\+0xe2>
+    8ffa:      eb01 0002       add\.w  r0, r1, r2
+    8ffe:      f001 b805       b\.w    a00c <bl_insns\+0x10c>
+    9002:      bf00            nop
+    9004:      f3af 8000       nop\.w
+    9008:      f3af 8000       nop\.w
+    900c:      f3af 8000       nop\.w
+    9010:      f3af 8000       nop\.w
+    9014:      f3af 8000       nop\.w
+    9018:      f3af 8000       nop\.w
+    901c:      f3af 8000       nop\.w
+    9020:      f3af 8000       nop\.w
+    9024:      f3af 8000       nop\.w
+    9028:      f3af 8000       nop\.w
+    902c:      f3af 8000       nop\.w
+    9030:      f3af 8000       nop\.w
+    9034:      f3af 8000       nop\.w
+    9038:      f3af 8000       nop\.w
+    903c:      f3af 8000       nop\.w
+    9040:      f3af 8000       nop\.w
+    9044:      f3af 8000       nop\.w
+    9048:      f3af 8000       nop\.w
+    904c:      f3af 8000       nop\.w
+    9050:      f3af 8000       nop\.w
+    9054:      f3af 8000       nop\.w
+    9058:      f3af 8000       nop\.w
+    905c:      f3af 8000       nop\.w
+    9060:      f3af 8000       nop\.w
+    9064:      f3af 8000       nop\.w
+    9068:      f3af 8000       nop\.w
+    906c:      f3af 8000       nop\.w
+    9070:      f3af 8000       nop\.w
+    9074:      f3af 8000       nop\.w
+    9078:      f3af 8000       nop\.w
+    907c:      f3af 8000       nop\.w
+    9080:      f3af 8000       nop\.w
+    9084:      f3af 8000       nop\.w
+    9088:      f3af 8000       nop\.w
+    908c:      f3af 8000       nop\.w
+    9090:      f3af 8000       nop\.w
+    9094:      f3af 8000       nop\.w
+    9098:      f3af 8000       nop\.w
+    909c:      f3af 8000       nop\.w
+    90a0:      f3af 8000       nop\.w
+    90a4:      f3af 8000       nop\.w
+    90a8:      f3af 8000       nop\.w
+    90ac:      f3af 8000       nop\.w
+    90b0:      f3af 8000       nop\.w
+    90b4:      f3af 8000       nop\.w
+    90b8:      f3af 8000       nop\.w
+    90bc:      f3af 8000       nop\.w
+    90c0:      f3af 8000       nop\.w
+    90c4:      f3af 8000       nop\.w
+    90c8:      f3af 8000       nop\.w
+    90cc:      f3af 8000       nop\.w
+    90d0:      f3af 8000       nop\.w
+    90d4:      f3af 8000       nop\.w
+    90d8:      f3af 8000       nop\.w
+    90dc:      f3af 8000       nop\.w
+    90e0:      f3af 8000       nop\.w
+    90e4:      f3af 8000       nop\.w
+    90e8:      f3af 8000       nop\.w
+    90ec:      f3af 8000       nop\.w
+    90f0:      f3af 8000       nop\.w
+    90f4:      f3af 8000       nop\.w
+    90f8:      f3af 8000       nop\.w
+    90fc:      f3af 8000       nop\.w
+    9100:      f3af 8000       nop\.w
+    9104:      f3af 8000       nop\.w
+    9108:      f3af 8000       nop\.w
+    910c:      f3af 8000       nop\.w
+    9110:      f3af 8000       nop\.w
+    9114:      f3af 8000       nop\.w
+    9118:      f3af 8000       nop\.w
+    911c:      f3af 8000       nop\.w
+    9120:      f3af 8000       nop\.w
+    9124:      f3af 8000       nop\.w
+    9128:      f3af 8000       nop\.w
+    912c:      f3af 8000       nop\.w
+    9130:      f3af 8000       nop\.w
+    9134:      f3af 8000       nop\.w
+    9138:      f3af 8000       nop\.w
+    913c:      f3af 8000       nop\.w
+    9140:      f3af 8000       nop\.w
+    9144:      f3af 8000       nop\.w
+    9148:      f3af 8000       nop\.w
+    914c:      f3af 8000       nop\.w
+    9150:      f3af 8000       nop\.w
+    9154:      f3af 8000       nop\.w
+    9158:      f3af 8000       nop\.w
+    915c:      f3af 8000       nop\.w
+    9160:      f3af 8000       nop\.w
+    9164:      f3af 8000       nop\.w
+    9168:      f3af 8000       nop\.w
+    916c:      f3af 8000       nop\.w
+    9170:      f3af 8000       nop\.w
+    9174:      f3af 8000       nop\.w
+    9178:      f3af 8000       nop\.w
+    917c:      f3af 8000       nop\.w
+    9180:      f3af 8000       nop\.w
+    9184:      f3af 8000       nop\.w
+    9188:      f3af 8000       nop\.w
+    918c:      f3af 8000       nop\.w
+    9190:      f3af 8000       nop\.w
+    9194:      f3af 8000       nop\.w
+    9198:      f3af 8000       nop\.w
+    919c:      f3af 8000       nop\.w
+    91a0:      f3af 8000       nop\.w
+    91a4:      f3af 8000       nop\.w
+    91a8:      f3af 8000       nop\.w
+    91ac:      f3af 8000       nop\.w
+    91b0:      f3af 8000       nop\.w
+    91b4:      f3af 8000       nop\.w
+    91b8:      f3af 8000       nop\.w
+    91bc:      f3af 8000       nop\.w
+    91c0:      f3af 8000       nop\.w
+    91c4:      f3af 8000       nop\.w
+    91c8:      f3af 8000       nop\.w
+    91cc:      f3af 8000       nop\.w
+    91d0:      f3af 8000       nop\.w
+    91d4:      f3af 8000       nop\.w
+    91d8:      f3af 8000       nop\.w
+    91dc:      f3af 8000       nop\.w
+    91e0:      f3af 8000       nop\.w
+    91e4:      f3af 8000       nop\.w
+    91e8:      f3af 8000       nop\.w
+    91ec:      f3af 8000       nop\.w
+    91f0:      f3af 8000       nop\.w
+    91f4:      f3af 8000       nop\.w
+    91f8:      f3af 8000       nop\.w
+    91fc:      f3af 8000       nop\.w
+    9200:      f3af 8000       nop\.w
+    9204:      f3af 8000       nop\.w
+    9208:      f3af 8000       nop\.w
+    920c:      f3af 8000       nop\.w
+    9210:      f3af 8000       nop\.w
+    9214:      f3af 8000       nop\.w
+    9218:      f3af 8000       nop\.w
+    921c:      f3af 8000       nop\.w
+    9220:      f3af 8000       nop\.w
+    9224:      f3af 8000       nop\.w
+    9228:      f3af 8000       nop\.w
+    922c:      f3af 8000       nop\.w
+    9230:      f3af 8000       nop\.w
+    9234:      f3af 8000       nop\.w
+    9238:      f3af 8000       nop\.w
+    923c:      f3af 8000       nop\.w
+    9240:      f3af 8000       nop\.w
+    9244:      f3af 8000       nop\.w
+    9248:      f3af 8000       nop\.w
+    924c:      f3af 8000       nop\.w
+    9250:      f3af 8000       nop\.w
+    9254:      f3af 8000       nop\.w
+    9258:      f3af 8000       nop\.w
+    925c:      f3af 8000       nop\.w
+    9260:      f3af 8000       nop\.w
+    9264:      f3af 8000       nop\.w
+    9268:      f3af 8000       nop\.w
+    926c:      f3af 8000       nop\.w
+    9270:      f3af 8000       nop\.w
+    9274:      f3af 8000       nop\.w
+    9278:      f3af 8000       nop\.w
+    927c:      f3af 8000       nop\.w
+    9280:      f3af 8000       nop\.w
+    9284:      f3af 8000       nop\.w
+    9288:      f3af 8000       nop\.w
+    928c:      f3af 8000       nop\.w
+    9290:      f3af 8000       nop\.w
+    9294:      f3af 8000       nop\.w
+    9298:      f3af 8000       nop\.w
+    929c:      f3af 8000       nop\.w
+    92a0:      f3af 8000       nop\.w
+    92a4:      f3af 8000       nop\.w
+    92a8:      f3af 8000       nop\.w
+    92ac:      f3af 8000       nop\.w
+    92b0:      f3af 8000       nop\.w
+    92b4:      f3af 8000       nop\.w
+    92b8:      f3af 8000       nop\.w
+    92bc:      f3af 8000       nop\.w
+    92c0:      f3af 8000       nop\.w
+    92c4:      f3af 8000       nop\.w
+    92c8:      f3af 8000       nop\.w
+    92cc:      f3af 8000       nop\.w
+    92d0:      f3af 8000       nop\.w
+    92d4:      f3af 8000       nop\.w
+    92d8:      f3af 8000       nop\.w
+    92dc:      f3af 8000       nop\.w
+    92e0:      f3af 8000       nop\.w
+    92e4:      f3af 8000       nop\.w
+    92e8:      f3af 8000       nop\.w
+    92ec:      f3af 8000       nop\.w
+    92f0:      f3af 8000       nop\.w
+    92f4:      f3af 8000       nop\.w
+    92f8:      f3af 8000       nop\.w
+    92fc:      f3af 8000       nop\.w
+    9300:      f3af 8000       nop\.w
+    9304:      f3af 8000       nop\.w
+    9308:      f3af 8000       nop\.w
+    930c:      f3af 8000       nop\.w
+    9310:      f3af 8000       nop\.w
+    9314:      f3af 8000       nop\.w
+    9318:      f3af 8000       nop\.w
+    931c:      f3af 8000       nop\.w
+    9320:      f3af 8000       nop\.w
+    9324:      f3af 8000       nop\.w
+    9328:      f3af 8000       nop\.w
+    932c:      f3af 8000       nop\.w
+    9330:      f3af 8000       nop\.w
+    9334:      f3af 8000       nop\.w
+    9338:      f3af 8000       nop\.w
+    933c:      f3af 8000       nop\.w
+    9340:      f3af 8000       nop\.w
+    9344:      f3af 8000       nop\.w
+    9348:      f3af 8000       nop\.w
+    934c:      f3af 8000       nop\.w
+    9350:      f3af 8000       nop\.w
+    9354:      f3af 8000       nop\.w
+    9358:      f3af 8000       nop\.w
+    935c:      f3af 8000       nop\.w
+    9360:      f3af 8000       nop\.w
+    9364:      f3af 8000       nop\.w
+    9368:      f3af 8000       nop\.w
+    936c:      f3af 8000       nop\.w
+    9370:      f3af 8000       nop\.w
+    9374:      f3af 8000       nop\.w
+    9378:      f3af 8000       nop\.w
+    937c:      f3af 8000       nop\.w
+    9380:      f3af 8000       nop\.w
+    9384:      f3af 8000       nop\.w
+    9388:      f3af 8000       nop\.w
+    938c:      f3af 8000       nop\.w
+    9390:      f3af 8000       nop\.w
+    9394:      f3af 8000       nop\.w
+    9398:      f3af 8000       nop\.w
+    939c:      f3af 8000       nop\.w
+    93a0:      f3af 8000       nop\.w
+    93a4:      f3af 8000       nop\.w
+    93a8:      f3af 8000       nop\.w
+    93ac:      f3af 8000       nop\.w
+    93b0:      f3af 8000       nop\.w
+    93b4:      f3af 8000       nop\.w
+    93b8:      f3af 8000       nop\.w
+    93bc:      f3af 8000       nop\.w
+    93c0:      f3af 8000       nop\.w
+    93c4:      f3af 8000       nop\.w
+    93c8:      f3af 8000       nop\.w
+    93cc:      f3af 8000       nop\.w
+    93d0:      f3af 8000       nop\.w
+    93d4:      f3af 8000       nop\.w
+    93d8:      f3af 8000       nop\.w
+    93dc:      f3af 8000       nop\.w
+    93e0:      f3af 8000       nop\.w
+    93e4:      f3af 8000       nop\.w
+    93e8:      f3af 8000       nop\.w
+    93ec:      f3af 8000       nop\.w
+    93f0:      f3af 8000       nop\.w
+    93f4:      f3af 8000       nop\.w
+    93f8:      f3af 8000       nop\.w
+    93fc:      f3af 8000       nop\.w
+    9400:      f3af 8000       nop\.w
+    9404:      f3af 8000       nop\.w
+    9408:      f3af 8000       nop\.w
+    940c:      f3af 8000       nop\.w
+    9410:      f3af 8000       nop\.w
+    9414:      f3af 8000       nop\.w
+    9418:      f3af 8000       nop\.w
+    941c:      f3af 8000       nop\.w
+    9420:      f3af 8000       nop\.w
+    9424:      f3af 8000       nop\.w
+    9428:      f3af 8000       nop\.w
+    942c:      f3af 8000       nop\.w
+    9430:      f3af 8000       nop\.w
+    9434:      f3af 8000       nop\.w
+    9438:      f3af 8000       nop\.w
+    943c:      f3af 8000       nop\.w
+    9440:      f3af 8000       nop\.w
+    9444:      f3af 8000       nop\.w
+    9448:      f3af 8000       nop\.w
+    944c:      f3af 8000       nop\.w
+    9450:      f3af 8000       nop\.w
+    9454:      f3af 8000       nop\.w
+    9458:      f3af 8000       nop\.w
+    945c:      f3af 8000       nop\.w
+    9460:      f3af 8000       nop\.w
+    9464:      f3af 8000       nop\.w
+    9468:      f3af 8000       nop\.w
+    946c:      f3af 8000       nop\.w
+    9470:      f3af 8000       nop\.w
+    9474:      f3af 8000       nop\.w
+    9478:      f3af 8000       nop\.w
+    947c:      f3af 8000       nop\.w
+    9480:      f3af 8000       nop\.w
+    9484:      f3af 8000       nop\.w
+    9488:      f3af 8000       nop\.w
+    948c:      f3af 8000       nop\.w
+    9490:      f3af 8000       nop\.w
+    9494:      f3af 8000       nop\.w
+    9498:      f3af 8000       nop\.w
+    949c:      f3af 8000       nop\.w
+    94a0:      f3af 8000       nop\.w
+    94a4:      f3af 8000       nop\.w
+    94a8:      f3af 8000       nop\.w
+    94ac:      f3af 8000       nop\.w
+    94b0:      f3af 8000       nop\.w
+    94b4:      f3af 8000       nop\.w
+    94b8:      f3af 8000       nop\.w
+    94bc:      f3af 8000       nop\.w
+    94c0:      f3af 8000       nop\.w
+    94c4:      f3af 8000       nop\.w
+    94c8:      f3af 8000       nop\.w
+    94cc:      f3af 8000       nop\.w
+    94d0:      f3af 8000       nop\.w
+    94d4:      f3af 8000       nop\.w
+    94d8:      f3af 8000       nop\.w
+    94dc:      f3af 8000       nop\.w
+    94e0:      f3af 8000       nop\.w
+    94e4:      f3af 8000       nop\.w
+    94e8:      f3af 8000       nop\.w
+    94ec:      f3af 8000       nop\.w
+    94f0:      f3af 8000       nop\.w
+    94f4:      f3af 8000       nop\.w
+    94f8:      f3af 8000       nop\.w
+    94fc:      f3af 8000       nop\.w
+    9500:      f3af 8000       nop\.w
+    9504:      f3af 8000       nop\.w
+    9508:      f3af 8000       nop\.w
+    950c:      f3af 8000       nop\.w
+    9510:      f3af 8000       nop\.w
+    9514:      f3af 8000       nop\.w
+    9518:      f3af 8000       nop\.w
+    951c:      f3af 8000       nop\.w
+    9520:      f3af 8000       nop\.w
+    9524:      f3af 8000       nop\.w
+    9528:      f3af 8000       nop\.w
+    952c:      f3af 8000       nop\.w
+    9530:      f3af 8000       nop\.w
+    9534:      f3af 8000       nop\.w
+    9538:      f3af 8000       nop\.w
+    953c:      f3af 8000       nop\.w
+    9540:      f3af 8000       nop\.w
+    9544:      f3af 8000       nop\.w
+    9548:      f3af 8000       nop\.w
+    954c:      f3af 8000       nop\.w
+    9550:      f3af 8000       nop\.w
+    9554:      f3af 8000       nop\.w
+    9558:      f3af 8000       nop\.w
+    955c:      f3af 8000       nop\.w
+    9560:      f3af 8000       nop\.w
+    9564:      f3af 8000       nop\.w
+    9568:      f3af 8000       nop\.w
+    956c:      f3af 8000       nop\.w
+    9570:      f3af 8000       nop\.w
+    9574:      f3af 8000       nop\.w
+    9578:      f3af 8000       nop\.w
+    957c:      f3af 8000       nop\.w
+    9580:      f3af 8000       nop\.w
+    9584:      f3af 8000       nop\.w
+    9588:      f3af 8000       nop\.w
+    958c:      f3af 8000       nop\.w
+    9590:      f3af 8000       nop\.w
+    9594:      f3af 8000       nop\.w
+    9598:      f3af 8000       nop\.w
+    959c:      f3af 8000       nop\.w
+    95a0:      f3af 8000       nop\.w
+    95a4:      f3af 8000       nop\.w
+    95a8:      f3af 8000       nop\.w
+    95ac:      f3af 8000       nop\.w
+    95b0:      f3af 8000       nop\.w
+    95b4:      f3af 8000       nop\.w
+    95b8:      f3af 8000       nop\.w
+    95bc:      f3af 8000       nop\.w
+    95c0:      f3af 8000       nop\.w
+    95c4:      f3af 8000       nop\.w
+    95c8:      f3af 8000       nop\.w
+    95cc:      f3af 8000       nop\.w
+    95d0:      f3af 8000       nop\.w
+    95d4:      f3af 8000       nop\.w
+    95d8:      f3af 8000       nop\.w
+    95dc:      f3af 8000       nop\.w
+    95e0:      f3af 8000       nop\.w
+    95e4:      f3af 8000       nop\.w
+    95e8:      f3af 8000       nop\.w
+    95ec:      f3af 8000       nop\.w
+    95f0:      f3af 8000       nop\.w
+    95f4:      f3af 8000       nop\.w
+    95f8:      f3af 8000       nop\.w
+    95fc:      f3af 8000       nop\.w
+    9600:      f3af 8000       nop\.w
+    9604:      f3af 8000       nop\.w
+    9608:      f3af 8000       nop\.w
+    960c:      f3af 8000       nop\.w
+    9610:      f3af 8000       nop\.w
+    9614:      f3af 8000       nop\.w
+    9618:      f3af 8000       nop\.w
+    961c:      f3af 8000       nop\.w
+    9620:      f3af 8000       nop\.w
+    9624:      f3af 8000       nop\.w
+    9628:      f3af 8000       nop\.w
+    962c:      f3af 8000       nop\.w
+    9630:      f3af 8000       nop\.w
+    9634:      f3af 8000       nop\.w
+    9638:      f3af 8000       nop\.w
+    963c:      f3af 8000       nop\.w
+    9640:      f3af 8000       nop\.w
+    9644:      f3af 8000       nop\.w
+    9648:      f3af 8000       nop\.w
+    964c:      f3af 8000       nop\.w
+    9650:      f3af 8000       nop\.w
+    9654:      f3af 8000       nop\.w
+    9658:      f3af 8000       nop\.w
+    965c:      f3af 8000       nop\.w
+    9660:      f3af 8000       nop\.w
+    9664:      f3af 8000       nop\.w
+    9668:      f3af 8000       nop\.w
+    966c:      f3af 8000       nop\.w
+    9670:      f3af 8000       nop\.w
+    9674:      f3af 8000       nop\.w
+    9678:      f3af 8000       nop\.w
+    967c:      f3af 8000       nop\.w
+    9680:      f3af 8000       nop\.w
+    9684:      f3af 8000       nop\.w
+    9688:      f3af 8000       nop\.w
+    968c:      f3af 8000       nop\.w
+    9690:      f3af 8000       nop\.w
+    9694:      f3af 8000       nop\.w
+    9698:      f3af 8000       nop\.w
+    969c:      f3af 8000       nop\.w
+    96a0:      f3af 8000       nop\.w
+    96a4:      f3af 8000       nop\.w
+    96a8:      f3af 8000       nop\.w
+    96ac:      f3af 8000       nop\.w
+    96b0:      f3af 8000       nop\.w
+    96b4:      f3af 8000       nop\.w
+    96b8:      f3af 8000       nop\.w
+    96bc:      f3af 8000       nop\.w
+    96c0:      f3af 8000       nop\.w
+    96c4:      f3af 8000       nop\.w
+    96c8:      f3af 8000       nop\.w
+    96cc:      f3af 8000       nop\.w
+    96d0:      f3af 8000       nop\.w
+    96d4:      f3af 8000       nop\.w
+    96d8:      f3af 8000       nop\.w
+    96dc:      f3af 8000       nop\.w
+    96e0:      f3af 8000       nop\.w
+    96e4:      f3af 8000       nop\.w
+    96e8:      f3af 8000       nop\.w
+    96ec:      f3af 8000       nop\.w
+    96f0:      f3af 8000       nop\.w
+    96f4:      f3af 8000       nop\.w
+    96f8:      f3af 8000       nop\.w
+    96fc:      f3af 8000       nop\.w
+    9700:      f3af 8000       nop\.w
+    9704:      f3af 8000       nop\.w
+    9708:      f3af 8000       nop\.w
+    970c:      f3af 8000       nop\.w
+    9710:      f3af 8000       nop\.w
+    9714:      f3af 8000       nop\.w
+    9718:      f3af 8000       nop\.w
+    971c:      f3af 8000       nop\.w
+    9720:      f3af 8000       nop\.w
+    9724:      f3af 8000       nop\.w
+    9728:      f3af 8000       nop\.w
+    972c:      f3af 8000       nop\.w
+    9730:      f3af 8000       nop\.w
+    9734:      f3af 8000       nop\.w
+    9738:      f3af 8000       nop\.w
+    973c:      f3af 8000       nop\.w
+    9740:      f3af 8000       nop\.w
+    9744:      f3af 8000       nop\.w
+    9748:      f3af 8000       nop\.w
+    974c:      f3af 8000       nop\.w
+    9750:      f3af 8000       nop\.w
+    9754:      f3af 8000       nop\.w
+    9758:      f3af 8000       nop\.w
+    975c:      f3af 8000       nop\.w
+    9760:      f3af 8000       nop\.w
+    9764:      f3af 8000       nop\.w
+    9768:      f3af 8000       nop\.w
+    976c:      f3af 8000       nop\.w
+    9770:      f3af 8000       nop\.w
+    9774:      f3af 8000       nop\.w
+    9778:      f3af 8000       nop\.w
+    977c:      f3af 8000       nop\.w
+    9780:      f3af 8000       nop\.w
+    9784:      f3af 8000       nop\.w
+    9788:      f3af 8000       nop\.w
+    978c:      f3af 8000       nop\.w
+    9790:      f3af 8000       nop\.w
+    9794:      f3af 8000       nop\.w
+    9798:      f3af 8000       nop\.w
+    979c:      f3af 8000       nop\.w
+    97a0:      f3af 8000       nop\.w
+    97a4:      f3af 8000       nop\.w
+    97a8:      f3af 8000       nop\.w
+    97ac:      f3af 8000       nop\.w
+    97b0:      f3af 8000       nop\.w
+    97b4:      f3af 8000       nop\.w
+    97b8:      f3af 8000       nop\.w
+    97bc:      f3af 8000       nop\.w
+    97c0:      f3af 8000       nop\.w
+    97c4:      f3af 8000       nop\.w
+    97c8:      f3af 8000       nop\.w
+    97cc:      f3af 8000       nop\.w
+    97d0:      f3af 8000       nop\.w
+    97d4:      f3af 8000       nop\.w
+    97d8:      f3af 8000       nop\.w
+    97dc:      f3af 8000       nop\.w
+    97e0:      f3af 8000       nop\.w
+    97e4:      f3af 8000       nop\.w
+    97e8:      f3af 8000       nop\.w
+    97ec:      f3af 8000       nop\.w
+    97f0:      f3af 8000       nop\.w
+    97f4:      f3af 8000       nop\.w
+    97f8:      f3af 8000       nop\.w
+    97fc:      f3af 8000       nop\.w
+    9800:      f3af 8000       nop\.w
+    9804:      f3af 8000       nop\.w
+    9808:      f3af 8000       nop\.w
+    980c:      f3af 8000       nop\.w
+    9810:      f3af 8000       nop\.w
+    9814:      f3af 8000       nop\.w
+    9818:      f3af 8000       nop\.w
+    981c:      f3af 8000       nop\.w
+    9820:      f3af 8000       nop\.w
+    9824:      f3af 8000       nop\.w
+    9828:      f3af 8000       nop\.w
+    982c:      f3af 8000       nop\.w
+    9830:      f3af 8000       nop\.w
+    9834:      f3af 8000       nop\.w
+    9838:      f3af 8000       nop\.w
+    983c:      f3af 8000       nop\.w
+    9840:      f3af 8000       nop\.w
+    9844:      f3af 8000       nop\.w
+    9848:      f3af 8000       nop\.w
+    984c:      f3af 8000       nop\.w
+    9850:      f3af 8000       nop\.w
+    9854:      f3af 8000       nop\.w
+    9858:      f3af 8000       nop\.w
+    985c:      f3af 8000       nop\.w
+    9860:      f3af 8000       nop\.w
+    9864:      f3af 8000       nop\.w
+    9868:      f3af 8000       nop\.w
+    986c:      f3af 8000       nop\.w
+    9870:      f3af 8000       nop\.w
+    9874:      f3af 8000       nop\.w
+    9878:      f3af 8000       nop\.w
+    987c:      f3af 8000       nop\.w
+    9880:      f3af 8000       nop\.w
+    9884:      f3af 8000       nop\.w
+    9888:      f3af 8000       nop\.w
+    988c:      f3af 8000       nop\.w
+    9890:      f3af 8000       nop\.w
+    9894:      f3af 8000       nop\.w
+    9898:      f3af 8000       nop\.w
+    989c:      f3af 8000       nop\.w
+    98a0:      f3af 8000       nop\.w
+    98a4:      f3af 8000       nop\.w
+    98a8:      f3af 8000       nop\.w
+    98ac:      f3af 8000       nop\.w
+    98b0:      f3af 8000       nop\.w
+    98b4:      f3af 8000       nop\.w
+    98b8:      f3af 8000       nop\.w
+    98bc:      f3af 8000       nop\.w
+    98c0:      f3af 8000       nop\.w
+    98c4:      f3af 8000       nop\.w
+    98c8:      f3af 8000       nop\.w
+    98cc:      f3af 8000       nop\.w
+    98d0:      f3af 8000       nop\.w
+    98d4:      f3af 8000       nop\.w
+    98d8:      f3af 8000       nop\.w
+    98dc:      f3af 8000       nop\.w
+    98e0:      f3af 8000       nop\.w
+    98e4:      f3af 8000       nop\.w
+    98e8:      f3af 8000       nop\.w
+    98ec:      f3af 8000       nop\.w
+    98f0:      f3af 8000       nop\.w
+    98f4:      f3af 8000       nop\.w
+    98f8:      f3af 8000       nop\.w
+    98fc:      f3af 8000       nop\.w
+    9900:      f3af 8000       nop\.w
+    9904:      f3af 8000       nop\.w
+    9908:      f3af 8000       nop\.w
+    990c:      f3af 8000       nop\.w
+    9910:      f3af 8000       nop\.w
+    9914:      f3af 8000       nop\.w
+    9918:      f3af 8000       nop\.w
+    991c:      f3af 8000       nop\.w
+    9920:      f3af 8000       nop\.w
+    9924:      f3af 8000       nop\.w
+    9928:      f3af 8000       nop\.w
+    992c:      f3af 8000       nop\.w
+    9930:      f3af 8000       nop\.w
+    9934:      f3af 8000       nop\.w
+    9938:      f3af 8000       nop\.w
+    993c:      f3af 8000       nop\.w
+    9940:      f3af 8000       nop\.w
+    9944:      f3af 8000       nop\.w
+    9948:      f3af 8000       nop\.w
+    994c:      f3af 8000       nop\.w
+    9950:      f3af 8000       nop\.w
+    9954:      f3af 8000       nop\.w
+    9958:      f3af 8000       nop\.w
+    995c:      f3af 8000       nop\.w
+    9960:      f3af 8000       nop\.w
+    9964:      f3af 8000       nop\.w
+    9968:      f3af 8000       nop\.w
+    996c:      f3af 8000       nop\.w
+    9970:      f3af 8000       nop\.w
+    9974:      f3af 8000       nop\.w
+    9978:      f3af 8000       nop\.w
+    997c:      f3af 8000       nop\.w
+    9980:      f3af 8000       nop\.w
+    9984:      f3af 8000       nop\.w
+    9988:      f3af 8000       nop\.w
+    998c:      f3af 8000       nop\.w
+    9990:      f3af 8000       nop\.w
+    9994:      f3af 8000       nop\.w
+    9998:      f3af 8000       nop\.w
+    999c:      f3af 8000       nop\.w
+    99a0:      f3af 8000       nop\.w
+    99a4:      f3af 8000       nop\.w
+    99a8:      f3af 8000       nop\.w
+    99ac:      f3af 8000       nop\.w
+    99b0:      f3af 8000       nop\.w
+    99b4:      f3af 8000       nop\.w
+    99b8:      f3af 8000       nop\.w
+    99bc:      f3af 8000       nop\.w
+    99c0:      f3af 8000       nop\.w
+    99c4:      f3af 8000       nop\.w
+    99c8:      f3af 8000       nop\.w
+    99cc:      f3af 8000       nop\.w
+    99d0:      f3af 8000       nop\.w
+    99d4:      f3af 8000       nop\.w
+    99d8:      f3af 8000       nop\.w
+    99dc:      f3af 8000       nop\.w
+    99e0:      f3af 8000       nop\.w
+    99e4:      f3af 8000       nop\.w
+    99e8:      f3af 8000       nop\.w
+    99ec:      f3af 8000       nop\.w
+    99f0:      f3af 8000       nop\.w
+    99f4:      f3af 8000       nop\.w
+    99f8:      f3af 8000       nop\.w
+    99fc:      f3af 8000       nop\.w
+    9a00:      f3af 8000       nop\.w
+    9a04:      f3af 8000       nop\.w
+    9a08:      f3af 8000       nop\.w
+    9a0c:      f3af 8000       nop\.w
+    9a10:      f3af 8000       nop\.w
+    9a14:      f3af 8000       nop\.w
+    9a18:      f3af 8000       nop\.w
+    9a1c:      f3af 8000       nop\.w
+    9a20:      f3af 8000       nop\.w
+    9a24:      f3af 8000       nop\.w
+    9a28:      f3af 8000       nop\.w
+    9a2c:      f3af 8000       nop\.w
+    9a30:      f3af 8000       nop\.w
+    9a34:      f3af 8000       nop\.w
+    9a38:      f3af 8000       nop\.w
+    9a3c:      f3af 8000       nop\.w
+    9a40:      f3af 8000       nop\.w
+    9a44:      f3af 8000       nop\.w
+    9a48:      f3af 8000       nop\.w
+    9a4c:      f3af 8000       nop\.w
+    9a50:      f3af 8000       nop\.w
+    9a54:      f3af 8000       nop\.w
+    9a58:      f3af 8000       nop\.w
+    9a5c:      f3af 8000       nop\.w
+    9a60:      f3af 8000       nop\.w
+    9a64:      f3af 8000       nop\.w
+    9a68:      f3af 8000       nop\.w
+    9a6c:      f3af 8000       nop\.w
+    9a70:      f3af 8000       nop\.w
+    9a74:      f3af 8000       nop\.w
+    9a78:      f3af 8000       nop\.w
+    9a7c:      f3af 8000       nop\.w
+    9a80:      f3af 8000       nop\.w
+    9a84:      f3af 8000       nop\.w
+    9a88:      f3af 8000       nop\.w
+    9a8c:      f3af 8000       nop\.w
+    9a90:      f3af 8000       nop\.w
+    9a94:      f3af 8000       nop\.w
+    9a98:      f3af 8000       nop\.w
+    9a9c:      f3af 8000       nop\.w
+    9aa0:      f3af 8000       nop\.w
+    9aa4:      f3af 8000       nop\.w
+    9aa8:      f3af 8000       nop\.w
+    9aac:      f3af 8000       nop\.w
+    9ab0:      f3af 8000       nop\.w
+    9ab4:      f3af 8000       nop\.w
+    9ab8:      f3af 8000       nop\.w
+    9abc:      f3af 8000       nop\.w
+    9ac0:      f3af 8000       nop\.w
+    9ac4:      f3af 8000       nop\.w
+    9ac8:      f3af 8000       nop\.w
+    9acc:      f3af 8000       nop\.w
+    9ad0:      f3af 8000       nop\.w
+    9ad4:      f3af 8000       nop\.w
+    9ad8:      f3af 8000       nop\.w
+    9adc:      f3af 8000       nop\.w
+    9ae0:      f3af 8000       nop\.w
+    9ae4:      f3af 8000       nop\.w
+    9ae8:      f3af 8000       nop\.w
+    9aec:      f3af 8000       nop\.w
+    9af0:      f3af 8000       nop\.w
+    9af4:      f3af 8000       nop\.w
+    9af8:      f3af 8000       nop\.w
+    9afc:      f3af 8000       nop\.w
+    9b00:      f3af 8000       nop\.w
+    9b04:      f3af 8000       nop\.w
+    9b08:      f3af 8000       nop\.w
+    9b0c:      f3af 8000       nop\.w
+    9b10:      f3af 8000       nop\.w
+    9b14:      f3af 8000       nop\.w
+    9b18:      f3af 8000       nop\.w
+    9b1c:      f3af 8000       nop\.w
+    9b20:      f3af 8000       nop\.w
+    9b24:      f3af 8000       nop\.w
+    9b28:      f3af 8000       nop\.w
+    9b2c:      f3af 8000       nop\.w
+    9b30:      f3af 8000       nop\.w
+    9b34:      f3af 8000       nop\.w
+    9b38:      f3af 8000       nop\.w
+    9b3c:      f3af 8000       nop\.w
+    9b40:      f3af 8000       nop\.w
+    9b44:      f3af 8000       nop\.w
+    9b48:      f3af 8000       nop\.w
+    9b4c:      f3af 8000       nop\.w
+    9b50:      f3af 8000       nop\.w
+    9b54:      f3af 8000       nop\.w
+    9b58:      f3af 8000       nop\.w
+    9b5c:      f3af 8000       nop\.w
+    9b60:      f3af 8000       nop\.w
+    9b64:      f3af 8000       nop\.w
+    9b68:      f3af 8000       nop\.w
+    9b6c:      f3af 8000       nop\.w
+    9b70:      f3af 8000       nop\.w
+    9b74:      f3af 8000       nop\.w
+    9b78:      f3af 8000       nop\.w
+    9b7c:      f3af 8000       nop\.w
+    9b80:      f3af 8000       nop\.w
+    9b84:      f3af 8000       nop\.w
+    9b88:      f3af 8000       nop\.w
+    9b8c:      f3af 8000       nop\.w
+    9b90:      f3af 8000       nop\.w
+    9b94:      f3af 8000       nop\.w
+    9b98:      f3af 8000       nop\.w
+    9b9c:      f3af 8000       nop\.w
+    9ba0:      f3af 8000       nop\.w
+    9ba4:      f3af 8000       nop\.w
+    9ba8:      f3af 8000       nop\.w
+    9bac:      f3af 8000       nop\.w
+    9bb0:      f3af 8000       nop\.w
+    9bb4:      f3af 8000       nop\.w
+    9bb8:      f3af 8000       nop\.w
+    9bbc:      f3af 8000       nop\.w
+    9bc0:      f3af 8000       nop\.w
+    9bc4:      f3af 8000       nop\.w
+    9bc8:      f3af 8000       nop\.w
+    9bcc:      f3af 8000       nop\.w
+    9bd0:      f3af 8000       nop\.w
+    9bd4:      f3af 8000       nop\.w
+    9bd8:      f3af 8000       nop\.w
+    9bdc:      f3af 8000       nop\.w
+    9be0:      f3af 8000       nop\.w
+    9be4:      f3af 8000       nop\.w
+    9be8:      f3af 8000       nop\.w
+    9bec:      f3af 8000       nop\.w
+    9bf0:      f3af 8000       nop\.w
+    9bf4:      f3af 8000       nop\.w
+    9bf8:      f3af 8000       nop\.w
+    9bfc:      f3af 8000       nop\.w
+    9c00:      f3af 8000       nop\.w
+    9c04:      f3af 8000       nop\.w
+    9c08:      f3af 8000       nop\.w
+    9c0c:      f3af 8000       nop\.w
+    9c10:      f3af 8000       nop\.w
+    9c14:      f3af 8000       nop\.w
+    9c18:      f3af 8000       nop\.w
+    9c1c:      f3af 8000       nop\.w
+    9c20:      f3af 8000       nop\.w
+    9c24:      f3af 8000       nop\.w
+    9c28:      f3af 8000       nop\.w
+    9c2c:      f3af 8000       nop\.w
+    9c30:      f3af 8000       nop\.w
+    9c34:      f3af 8000       nop\.w
+    9c38:      f3af 8000       nop\.w
+    9c3c:      f3af 8000       nop\.w
+    9c40:      f3af 8000       nop\.w
+    9c44:      f3af 8000       nop\.w
+    9c48:      f3af 8000       nop\.w
+    9c4c:      f3af 8000       nop\.w
+    9c50:      f3af 8000       nop\.w
+    9c54:      f3af 8000       nop\.w
+    9c58:      f3af 8000       nop\.w
+    9c5c:      f3af 8000       nop\.w
+    9c60:      f3af 8000       nop\.w
+    9c64:      f3af 8000       nop\.w
+    9c68:      f3af 8000       nop\.w
+    9c6c:      f3af 8000       nop\.w
+    9c70:      f3af 8000       nop\.w
+    9c74:      f3af 8000       nop\.w
+    9c78:      f3af 8000       nop\.w
+    9c7c:      f3af 8000       nop\.w
+    9c80:      f3af 8000       nop\.w
+    9c84:      f3af 8000       nop\.w
+    9c88:      f3af 8000       nop\.w
+    9c8c:      f3af 8000       nop\.w
+    9c90:      f3af 8000       nop\.w
+    9c94:      f3af 8000       nop\.w
+    9c98:      f3af 8000       nop\.w
+    9c9c:      f3af 8000       nop\.w
+    9ca0:      f3af 8000       nop\.w
+    9ca4:      f3af 8000       nop\.w
+    9ca8:      f3af 8000       nop\.w
+    9cac:      f3af 8000       nop\.w
+    9cb0:      f3af 8000       nop\.w
+    9cb4:      f3af 8000       nop\.w
+    9cb8:      f3af 8000       nop\.w
+    9cbc:      f3af 8000       nop\.w
+    9cc0:      f3af 8000       nop\.w
+    9cc4:      f3af 8000       nop\.w
+    9cc8:      f3af 8000       nop\.w
+    9ccc:      f3af 8000       nop\.w
+    9cd0:      f3af 8000       nop\.w
+    9cd4:      f3af 8000       nop\.w
+    9cd8:      f3af 8000       nop\.w
+    9cdc:      f3af 8000       nop\.w
+    9ce0:      f3af 8000       nop\.w
+    9ce4:      f3af 8000       nop\.w
+    9ce8:      f3af 8000       nop\.w
+    9cec:      f3af 8000       nop\.w
+    9cf0:      f3af 8000       nop\.w
+    9cf4:      f3af 8000       nop\.w
+    9cf8:      f3af 8000       nop\.w
+    9cfc:      f3af 8000       nop\.w
+    9d00:      f3af 8000       nop\.w
+    9d04:      f3af 8000       nop\.w
+    9d08:      f3af 8000       nop\.w
+    9d0c:      f3af 8000       nop\.w
+    9d10:      f3af 8000       nop\.w
+    9d14:      f3af 8000       nop\.w
+    9d18:      f3af 8000       nop\.w
+    9d1c:      f3af 8000       nop\.w
+    9d20:      f3af 8000       nop\.w
+    9d24:      f3af 8000       nop\.w
+    9d28:      f3af 8000       nop\.w
+    9d2c:      f3af 8000       nop\.w
+    9d30:      f3af 8000       nop\.w
+    9d34:      f3af 8000       nop\.w
+    9d38:      f3af 8000       nop\.w
+    9d3c:      f3af 8000       nop\.w
+    9d40:      f3af 8000       nop\.w
+    9d44:      f3af 8000       nop\.w
+    9d48:      f3af 8000       nop\.w
+    9d4c:      f3af 8000       nop\.w
+    9d50:      f3af 8000       nop\.w
+    9d54:      f3af 8000       nop\.w
+    9d58:      f3af 8000       nop\.w
+    9d5c:      f3af 8000       nop\.w
+    9d60:      f3af 8000       nop\.w
+    9d64:      f3af 8000       nop\.w
+    9d68:      f3af 8000       nop\.w
+    9d6c:      f3af 8000       nop\.w
+    9d70:      f3af 8000       nop\.w
+    9d74:      f3af 8000       nop\.w
+    9d78:      f3af 8000       nop\.w
+    9d7c:      f3af 8000       nop\.w
+    9d80:      f3af 8000       nop\.w
+    9d84:      f3af 8000       nop\.w
+    9d88:      f3af 8000       nop\.w
+    9d8c:      f3af 8000       nop\.w
+    9d90:      f3af 8000       nop\.w
+    9d94:      f3af 8000       nop\.w
+    9d98:      f3af 8000       nop\.w
+    9d9c:      f3af 8000       nop\.w
+    9da0:      f3af 8000       nop\.w
+    9da4:      f3af 8000       nop\.w
+    9da8:      f3af 8000       nop\.w
+    9dac:      f3af 8000       nop\.w
+    9db0:      f3af 8000       nop\.w
+    9db4:      f3af 8000       nop\.w
+    9db8:      f3af 8000       nop\.w
+    9dbc:      f3af 8000       nop\.w
+    9dc0:      f3af 8000       nop\.w
+    9dc4:      f3af 8000       nop\.w
+    9dc8:      f3af 8000       nop\.w
+    9dcc:      f3af 8000       nop\.w
+    9dd0:      f3af 8000       nop\.w
+    9dd4:      f3af 8000       nop\.w
+    9dd8:      f3af 8000       nop\.w
+    9ddc:      f3af 8000       nop\.w
+    9de0:      f3af 8000       nop\.w
+    9de4:      f3af 8000       nop\.w
+    9de8:      f3af 8000       nop\.w
+    9dec:      f3af 8000       nop\.w
+    9df0:      f3af 8000       nop\.w
+    9df4:      f3af 8000       nop\.w
+    9df8:      f3af 8000       nop\.w
+    9dfc:      f3af 8000       nop\.w
+    9e00:      f3af 8000       nop\.w
+    9e04:      f3af 8000       nop\.w
+    9e08:      f3af 8000       nop\.w
+    9e0c:      f3af 8000       nop\.w
+    9e10:      f3af 8000       nop\.w
+    9e14:      f3af 8000       nop\.w
+    9e18:      f3af 8000       nop\.w
+    9e1c:      f3af 8000       nop\.w
+    9e20:      f3af 8000       nop\.w
+    9e24:      f3af 8000       nop\.w
+    9e28:      f3af 8000       nop\.w
+    9e2c:      f3af 8000       nop\.w
+    9e30:      f3af 8000       nop\.w
+    9e34:      f3af 8000       nop\.w
+    9e38:      f3af 8000       nop\.w
+    9e3c:      f3af 8000       nop\.w
+    9e40:      f3af 8000       nop\.w
+    9e44:      f3af 8000       nop\.w
+    9e48:      f3af 8000       nop\.w
+    9e4c:      f3af 8000       nop\.w
+    9e50:      f3af 8000       nop\.w
+    9e54:      f3af 8000       nop\.w
+    9e58:      f3af 8000       nop\.w
+    9e5c:      f3af 8000       nop\.w
+    9e60:      f3af 8000       nop\.w
+    9e64:      f3af 8000       nop\.w
+    9e68:      f3af 8000       nop\.w
+    9e6c:      f3af 8000       nop\.w
+    9e70:      f3af 8000       nop\.w
+    9e74:      f3af 8000       nop\.w
+    9e78:      f3af 8000       nop\.w
+    9e7c:      f3af 8000       nop\.w
+    9e80:      f3af 8000       nop\.w
+    9e84:      f3af 8000       nop\.w
+    9e88:      f3af 8000       nop\.w
+    9e8c:      f3af 8000       nop\.w
+    9e90:      f3af 8000       nop\.w
+    9e94:      f3af 8000       nop\.w
+    9e98:      f3af 8000       nop\.w
+    9e9c:      f3af 8000       nop\.w
+    9ea0:      f3af 8000       nop\.w
+    9ea4:      f3af 8000       nop\.w
+    9ea8:      f3af 8000       nop\.w
+    9eac:      f3af 8000       nop\.w
+    9eb0:      f3af 8000       nop\.w
+    9eb4:      f3af 8000       nop\.w
+    9eb8:      f3af 8000       nop\.w
+    9ebc:      f3af 8000       nop\.w
+    9ec0:      f3af 8000       nop\.w
+    9ec4:      f3af 8000       nop\.w
+    9ec8:      f3af 8000       nop\.w
+    9ecc:      f3af 8000       nop\.w
+    9ed0:      f3af 8000       nop\.w
+    9ed4:      f3af 8000       nop\.w
+    9ed8:      f3af 8000       nop\.w
+    9edc:      f3af 8000       nop\.w
+    9ee0:      f3af 8000       nop\.w
+    9ee4:      f3af 8000       nop\.w
+    9ee8:      f3af 8000       nop\.w
+    9eec:      f3af 8000       nop\.w
+    9ef0:      f3af 8000       nop\.w
+    9ef4:      f3af 8000       nop\.w
+
+00009ef8 <arm_target>:
+    9ef8:      e0843005        add     r3, r4, r5
+    9efc:      e12fff1e        bx      lr
+
+00009f00 <bl_insns>:
+    9f00:      bf00            nop
+    9f02:      eb01 0002       add\.w  r0, r1, r2
+    9f06:      f7ff eff8       blx     9ef8 <arm_target>
+    9f0a:      eb01 0002       add\.w  r0, r1, r2
+    9f0e:      f7ff eff4       blx     9ef8 <arm_target>
+    9f12:      eb01 0002       add\.w  r0, r1, r2
+    9f16:      f7ff eff0       blx     9ef8 <arm_target>
+    9f1a:      eb01 0002       add\.w  r0, r1, r2
+    9f1e:      f7ff efec       blx     9ef8 <arm_target>
+    9f22:      eb01 0002       add\.w  r0, r1, r2
+    9f26:      f7ff efe8       blx     9ef8 <arm_target>
+    9f2a:      eb01 0002       add\.w  r0, r1, r2
+    9f2e:      f7ff efe4       blx     9ef8 <arm_target>
+    9f32:      eb01 0002       add\.w  r0, r1, r2
+    9f36:      f7ff efe0       blx     9ef8 <arm_target>
+    9f3a:      eb01 0002       add\.w  r0, r1, r2
+    9f3e:      f7ff efdc       blx     9ef8 <arm_target>
+    9f42:      eb01 0002       add\.w  r0, r1, r2
+    9f46:      f7ff efd8       blx     9ef8 <arm_target>
+    9f4a:      eb01 0002       add\.w  r0, r1, r2
+    9f4e:      f7ff efd4       blx     9ef8 <arm_target>
+    9f52:      eb01 0002       add\.w  r0, r1, r2
+    9f56:      f7ff efd0       blx     9ef8 <arm_target>
+    9f5a:      eb01 0002       add\.w  r0, r1, r2
+    9f5e:      f7ff efcc       blx     9ef8 <arm_target>
+    9f62:      eb01 0002       add\.w  r0, r1, r2
+    9f66:      f7ff efc8       blx     9ef8 <arm_target>
+    9f6a:      eb01 0002       add\.w  r0, r1, r2
+    9f6e:      f7ff efc4       blx     9ef8 <arm_target>
+    9f72:      eb01 0002       add\.w  r0, r1, r2
+    9f76:      f7ff efc0       blx     9ef8 <arm_target>
+    9f7a:      eb01 0002       add\.w  r0, r1, r2
+    9f7e:      f7ff efbc       blx     9ef8 <arm_target>
+    9f82:      eb01 0002       add\.w  r0, r1, r2
+    9f86:      f7ff efb8       blx     9ef8 <arm_target>
+    9f8a:      eb01 0002       add\.w  r0, r1, r2
+    9f8e:      f7ff efb4       blx     9ef8 <arm_target>
+    9f92:      eb01 0002       add\.w  r0, r1, r2
+    9f96:      f7ff efb0       blx     9ef8 <arm_target>
+    9f9a:      eb01 0002       add\.w  r0, r1, r2
+    9f9e:      f7ff efac       blx     9ef8 <arm_target>
+    9fa2:      eb01 0002       add\.w  r0, r1, r2
+    9fa6:      f7ff efa8       blx     9ef8 <arm_target>
+    9faa:      eb01 0002       add\.w  r0, r1, r2
+    9fae:      f7ff efa4       blx     9ef8 <arm_target>
+    9fb2:      eb01 0002       add\.w  r0, r1, r2
+    9fb6:      f7ff efa0       blx     9ef8 <arm_target>
+    9fba:      eb01 0002       add\.w  r0, r1, r2
+    9fbe:      f7ff ef9c       blx     9ef8 <arm_target>
+    9fc2:      eb01 0002       add\.w  r0, r1, r2
+    9fc6:      f7ff ef98       blx     9ef8 <arm_target>
+    9fca:      eb01 0002       add\.w  r0, r1, r2
+    9fce:      f7ff ef94       blx     9ef8 <arm_target>
+    9fd2:      eb01 0002       add\.w  r0, r1, r2
+    9fd6:      f7ff ef90       blx     9ef8 <arm_target>
+    9fda:      eb01 0002       add\.w  r0, r1, r2
+    9fde:      f7ff ef8c       blx     9ef8 <arm_target>
+    9fe2:      eb01 0002       add\.w  r0, r1, r2
+    9fe6:      f7ff ef88       blx     9ef8 <arm_target>
+    9fea:      eb01 0002       add\.w  r0, r1, r2
+    9fee:      f7ff ef84       blx     9ef8 <arm_target>
+    9ff2:      eb01 0002       add\.w  r0, r1, r2
+    9ff6:      f7ff ef80       blx     9ef8 <arm_target>
+    9ffa:      eb01 0002       add\.w  r0, r1, r2
+    9ffe:      f000 e804       blx     a008 <bl_insns\+0x108>
+    a002:      4770            bx      lr
+    a004:      f3af 8000       nop\.w
+    a008:      eaffffba        b       9ef8 <arm_target>
+    a00c:      d101            bne\.n  a012 <bl_insns\+0x112>
+    a00e:      f7fe bff8       b\.w    9002 <_start\+0x102>
+    a012:      f7fe bfe6       b\.w    8fe2 <_start\+0xe2>
diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-blx-bcond.s b/ld/testsuite/ld-arm/cortex-a8-fix-blx-bcond.s
new file mode 100644 (file)
index 0000000..cb40fb4
--- /dev/null
@@ -0,0 +1,81 @@
+       .syntax unified
+       .cpu cortex-a8
+       .thumb
+       .text
+
+       @ expansion 32 bytes
+       .macro bw1
+1:
+       add.w r0, r1, r2
+       blx.w arm_target
+       add.w r0, r1, r2
+       blx.w arm_target
+       add.w r0, r1, r2
+       blx.w arm_target
+       add.w r0, r1, r2
+       blx.w arm_target
+       .endm
+
+       @ expansion 128 bytes
+       .macro bw2
+       bw1
+       bw1
+       bw1
+       bw1
+       .endm
+
+       @ expansion 32 bytes
+       .macro bw3
+1:
+       add.w r0, r1, r2
+       bne.w 1b
+       add.w r0, r1, r2
+       bne.w 1b
+       add.w r0, r1, r2
+       bne.w 1b
+       add.w r0, r1, r2
+       bne.w 1b
+       .endm
+
+       @ expansion 128 bytes
+       .macro bw4
+       bw3
+       bw3
+       bw3
+       bw3
+       .endm
+
+       .align  3
+       .global _start
+
+       .thumb
+       .thumb_func
+       .type   _start, %function
+_start:
+       nop
+
+       @ Trigger Cortex-A8 erratum workaround with b<cond> instructions.
+       bw4
+       bw4
+
+       nop
+
+       .rept 957
+       nop.w
+       .endr
+
+       .arm
+arm_target:
+       add r3, r4, r5
+       bx lr
+
+       .thumb
+bl_insns:
+
+       nop
+
+       @ ...and again with bl instructions.
+       bw2
+       bw2
+
+       bx      lr