OSDN Git Service

2007-06-06 Paul Brook <paul@codesourcery.com>
authorPaul Brook <paul@codesourcery.com>
Wed, 6 Jun 2007 17:36:54 +0000 (17:36 +0000)
committerPaul Brook <paul@codesourcery.com>
Wed, 6 Jun 2007 17:36:54 +0000 (17:36 +0000)
gas/
* config/tc-arm.c (s_align): Pad code sections appropriately.

gas/testsuite/
* gas/arm/thumb.d: Update expected output.
* gas/arm/thumb2_relax.d: Ditto.

gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/ChangeLog
gas/testsuite/gas/arm/thumb.d
gas/testsuite/gas/arm/thumb2_relax.d

index f1b6890..17217ed 100644 (file)
@@ -1,3 +1,7 @@
+2007-06-06  Paul Brook  <paul@codesourcery.com>
+
+       * config/tc-arm.c (s_align): Pad code sections appropriately.
+
 2007-06-05  Paul Brook  <paul@codesourcery.com>
 
        * config/tc-arm.c (insns): Correct Thumb-2 ldrd/strd opcodes.
index ca9e337..339cab5 100644 (file)
@@ -2613,6 +2613,7 @@ static void
 s_align (int unused ATTRIBUTE_UNUSED)
 {
   int temp;
+  bfd_boolean fill_p;
   long temp_fill;
   long max_alignment = 15;
 
@@ -2629,16 +2630,25 @@ s_align (int unused ATTRIBUTE_UNUSED)
     {
       input_line_pointer++;
       temp_fill = get_absolute_expression ();
+      fill_p = TRUE;
     }
   else
-    temp_fill = 0;
+    {
+      fill_p = FALSE;
+      temp_fill = 0;
+    }
 
   if (!temp)
     temp = 2;
 
   /* Only make a frag if we HAVE to.  */
   if (temp && !need_pass_2)
-    frag_align (temp, (int) temp_fill, 0);
+    {
+      if (!fill_p && subseg_text_p (now_seg))
+       frag_align_code (temp, 0);
+      else
+       frag_align (temp, (int) temp_fill, 0);
+    }
   demand_empty_rest_of_line ();
 
   record_alignment (now_seg, temp);
index d118298..2803af8 100644 (file)
@@ -1,3 +1,8 @@
+2007-06-06  Paul Brook  <paul@codesourcery.com>
+
+       * gas/arm/thumb.d: Update expected output.
+       * gas/arm/thumb2_relax.d: Ditto.
+
 2007-06-05  Paul Brook  <paul@codesourcery.com>
 
        * gas/arm/thumb32.d: Add writeback addressing mode tests.
index 8677330..7f9b253 100644 (file)
@@ -50,7 +50,7 @@ Disassembly of section \.text:
 0+050 <[^>]+> 46c0             nop                     \(mov r8, r8\)
 0+052 <[^>]+> 4738             bx      r7
 0+054 <[^>]+> 4740             bx      r8
-0+056 <[^>]+> 0000             lsls    r0, r0, #0
+0+056 <[^>]+> 46c0             nop                     \(mov r8, r8\)
 0+058 <[^>]+> 4778             bx      pc
 0+05a <[^>]+> 4b20             ldr     r3, \[pc, #128\]        \(0+0dc <[^>]+>\)
 0+05c <[^>]+> 4c02             ldr     r4, \[pc, #8\]  \(0+068 <[^>]+>\)
@@ -58,7 +58,7 @@ Disassembly of section \.text:
 0+060 <[^>]+> 5511             strb    r1, \[r2, r4\]
 0+062 <[^>]+> 59f5             ldr     r5, \[r6, r7\]
 0+064 <[^>]+> 5d62             ldrb    r2, \[r4, r5\]
-       \.\.\.
+0+066 <[^>]+> 46c0             nop                     \(mov r8, r8\)
 0+068 <[^>]+> 52d1             strh    r1, \[r2, r3\]
 0+06a <[^>]+> 5a23             ldrh    r3, \[r4, r0\]
 0+06c <[^>]+> 57f1             ldrsb   r1, \[r6, r7\]
@@ -134,7 +134,7 @@ Disassembly of section \.text:
 0+106 <[^>]+> f000 f815        bl      0+134 <[^>]+>
 0+10a <[^>]+> 4700             bx      r0
 0+10c <[^>]+> dfff             (swi|svc)       255
-       \.\.\.
+0+10e <[^>]+> 46c0             nop                     \(mov r8, r8\)
 0+110 <[^>]+> d010             beq.n   0+134 <[^>]+>
 0+112 <[^>]+> d10f             bne.n   0+134 <[^>]+>
 0+114 <[^>]+> d20e             bcs.n   0+134 <[^>]+>
index 980f87a..327ef42 100644 (file)
@@ -20,7 +20,7 @@ Disassembly of section .text:
 0+02e <[^>]+> f89f 800c        ldrb.w  r8, \[pc, #12\] ; 0+03c <[^>]+>
 0+032 <[^>]+> f89f 100a        ldrb.w  r1, \[pc, #10\] ; 0+03e <[^>]+>
 0+036 <[^>]+> f81f 1038        ldrb.w  r1, \[pc, #-56\]        ; 0+000 <[^>]+>
-0+03a <[^>]+> 0000             lsls    r0, r0, #0
+0+03a <[^>]+> 46c0             nop                     \(mov r8, r8\)
 0+03c <[^>]+> bf00             nop
 0+03e <[^>]+> f995 1000        ldrsb.w r1, \[r5\]
 0+042 <[^>]+> f995 1023        ldrsb.w r1, \[r5, #35\]
@@ -89,7 +89,7 @@ Disassembly of section .text:
 0+126 <[^>]+> f8df 800c        ldr.w   r8, \[pc, #12\] ; 0+134 <[^>]+>
 0+12a <[^>]+> f8df 100a        ldr.w   r1, \[pc, #10\] ; 0+136 <[^>]+>
 0+12e <[^>]+> f85f 1036        ldr.w   r1, \[pc, #-54\]        ; 0+0fa <[^>]+>
-0+132 <[^>]+> 0000             lsls    r0, r0, #0
+0+132 <[^>]+> 46c0             nop                     \(mov r8, r8\)
 0+134 <[^>]+> bf00             nop
 0+136 <[^>]+> 7029             strb    r1, \[r5, #0\]
 0+138 <[^>]+> f885 1023        strb.w  r1, \[r5, #35\]