From cc3f603a65ec4b4d6049f8c61931abf400433c4b Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 5 Mar 2009 15:27:59 +0000 Subject: [PATCH] gas: * read.c (s_fill, s_space, s_float_space, float_cons, stringer, s_incbin): Call md_cons_align (1). gas/testsuite: * gas/arm/mapmisc.d, gas/arm/mapmisc.dat, gas/arm/mapmisc.s: New. --- gas/ChangeLog | 5 ++ gas/read.c | 24 ++++++++ gas/testsuite/ChangeLog | 4 ++ gas/testsuite/gas/arm/mapmisc.d | 95 +++++++++++++++++++++++++++++++ gas/testsuite/gas/arm/mapmisc.dat | 1 + gas/testsuite/gas/arm/mapmisc.s | 36 ++++++++++++ 6 files changed, 165 insertions(+) create mode 100644 gas/testsuite/gas/arm/mapmisc.d create mode 100644 gas/testsuite/gas/arm/mapmisc.dat create mode 100644 gas/testsuite/gas/arm/mapmisc.s diff --git a/gas/ChangeLog b/gas/ChangeLog index f274c45be24..510095adcf4 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2009-03-05 Joseph Myers + + * read.c (s_fill, s_space, s_float_space, float_cons, stringer, + s_incbin): Call md_cons_align (1). + 2009-03-04 Nick Clifton * config/tc-alpha.c (alpha_prologue_label): Only define for ELF diff --git a/gas/read.c b/gas/read.c index 15ae78085fc..863a6ac13db 100644 --- a/gas/read.c +++ b/gas/read.c @@ -1920,6 +1920,10 @@ s_fill (int ignore ATTRIBUTE_UNUSED) md_flush_pending_output (); #endif +#ifdef md_cons_align + md_cons_align (1); +#endif + get_known_segmented_expression (&rep_exp); if (*input_line_pointer == ',') { @@ -3119,6 +3123,10 @@ s_space (int mult) md_flush_pending_output (); #endif +#ifdef md_cons_align + md_cons_align (1); +#endif + if (flag_mri) stop = mri_comment_field (&stopc); @@ -3290,6 +3298,10 @@ s_float_space (int float_type) char *stop = NULL; char stopc = 0; +#ifdef md_cons_align + md_cons_align (1); +#endif + if (flag_mri) stop = mri_comment_field (&stopc); @@ -4631,6 +4643,10 @@ float_cons (/* Clobbers input_line-pointer, checks end-of-line. */ md_flush_pending_output (); #endif +#ifdef md_cons_align + md_cons_align (1); +#endif + do { /* input_line_pointer->1st char of a flonum (we hope!). */ @@ -5075,6 +5091,10 @@ stringer (int bits_appendzero) md_flush_pending_output (); #endif +#ifdef md_cons_align + md_cons_align (1); +#endif + /* The following awkward logic is to parse ZERO or more strings, comma separated. Recall a string expression includes spaces before the opening '\"' and spaces after the closing '\"'. @@ -5453,6 +5473,10 @@ s_incbin (int x ATTRIBUTE_UNUSED) md_flush_pending_output (); #endif +#ifdef md_cons_align + md_cons_align (1); +#endif + SKIP_WHITESPACE (); filename = demand_copy_string (& len); if (filename == NULL) diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 0cc36523cbd..8e828f43475 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2009-03-05 Joseph Myers + + * gas/arm/mapmisc.d, gas/arm/mapmisc.dat, gas/arm/mapmisc.s: New. + 2009-03-02 Qinwei * gas/score/arith_32-lt.d: New file. diff --git a/gas/testsuite/gas/arm/mapmisc.d b/gas/testsuite/gas/arm/mapmisc.d new file mode 100644 index 00000000000..0d8527c15b1 --- /dev/null +++ b/gas/testsuite/gas/arm/mapmisc.d @@ -0,0 +1,95 @@ +#as: -EL -I$srcdir/$subdir +#objdump: --syms --special-syms -d +#name: ARM Mapping Symbols for miscellaneous directives +# This test is only valid on EABI based ports. +#target: *-*-*eabi *-*-symbianelf *-*-linux-* *-*-elf +#source: mapmisc.s + + +.*: +file format .*arm.* + +SYMBOL TABLE: +0+00 l d .text 00000000 .text +0+00 l d .data 00000000 .data +0+00 l d .bss 00000000 .bss +0+00 l F .text 00000000 foo +0+00 l .text 00000000 \$a +0+04 l .text 00000000 \$d +0+08 l .text 00000000 \$a +0+0c l .text 00000000 \$d +0+10 l .text 00000000 \$a +0+14 l .text 00000000 \$d +0+18 l .text 00000000 \$a +0+1c l .text 00000000 \$d +0+20 l .text 00000000 \$a +0+24 l .text 00000000 \$d +0+28 l .text 00000000 \$a +0+2c l .text 00000000 \$d +0+34 l .text 00000000 \$a +0+38 l .text 00000000 \$d +0+48 l .text 00000000 \$a +0+4c l .text 00000000 \$d +0+50 l .text 00000000 \$a +0+54 l .text 00000000 \$d +0+58 l .text 00000000 \$a +0+5c l .text 00000000 \$d +0+64 l .text 00000000 \$a +0+68 l .text 00000000 \$d +0+70 l .text 00000000 \$a +0+74 l .text 00000000 \$d +0+84 l .text 00000000 \$a +0+88 l .text 00000000 \$d +0+8c l .text 00000000 \$a +0+90 l .text 00000000 \$d +0+94 l .text 00000000 \$a +0+98 l .text 00000000 \$d +0+9c l .text 00000000 \$a +0+a0 l .text 00000000 \$d +0+a4 l .text 00000000 \$a +0+00 l d .ARM.attributes 00000000 .ARM.attributes + + + +Disassembly of section .text: + +00000000 : + 0: e1a00000 nop \(mov r0,r0\) + 4: 64636261 .word 0x64636261 + 8: e1a00000 nop \(mov r0,r0\) + c: 00636261 .word 0x00636261 + 10: e1a00000 nop \(mov r0,r0\) + 14: 00676665 .word 0x00676665 + 18: e1a00000 nop \(mov r0,r0\) + 1c: 006a6968 .word 0x006a6968 + 20: e1a00000 nop \(mov r0,r0\) + 24: 0000006b .word 0x0000006b + 28: e1a00000 nop \(mov r0,r0\) + 2c: 0000006c .word 0x0000006c + 30: 00000000 .word 0x00000000 + 34: e1a00000 nop \(mov r0,r0\) + 38: 0000006d .word 0x0000006d + ... + 48: e1a00000 nop \(mov r0,r0\) + 4c: 3fc00000 .word 0x3fc00000 + 50: e1a00000 nop \(mov r0,r0\) + 54: 40200000 .word 0x40200000 + 58: e1a00000 nop \(mov r0,r0\) + 5c: 400c0000 .word 0x400c0000 + 60: 00000000 .word 0x00000000 + 64: e1a00000 nop \(mov r0,r0\) + 68: 40120000 .word 0x40120000 + 6c: 00000000 .word 0x00000000 + 70: e1a00000 nop \(mov r0,r0\) + 74: 00000004 .word 0x00000004 + 78: 00000004 .word 0x00000004 + 7c: 00000004 .word 0x00000004 + 80: 00000004 .word 0x00000004 + 84: e1a00000 nop \(mov r0,r0\) + 88: 00000000 .word 0x00000000 + 8c: e1a00000 nop \(mov r0,r0\) + 90: 00000000 .word 0x00000000 + 94: e1a00000 nop \(mov r0,r0\) + 98: 00000000 .word 0x00000000 + 9c: e1a00000 nop \(mov r0,r0\) + a0: 7778797a .word 0x7778797a + a4: e1a00000 nop \(mov r0,r0\) diff --git a/gas/testsuite/gas/arm/mapmisc.dat b/gas/testsuite/gas/arm/mapmisc.dat new file mode 100644 index 00000000000..450730be8b8 --- /dev/null +++ b/gas/testsuite/gas/arm/mapmisc.dat @@ -0,0 +1 @@ +zyxw \ No newline at end of file diff --git a/gas/testsuite/gas/arm/mapmisc.s b/gas/testsuite/gas/arm/mapmisc.s new file mode 100644 index 00000000000..25d9a739388 --- /dev/null +++ b/gas/testsuite/gas/arm/mapmisc.s @@ -0,0 +1,36 @@ + .text + .type foo, %function +foo: + nop + .ascii "abcd" + nop + .asciz "abc" + nop + .string "efg" + nop + .string8 "hij" + nop + .string16 "k" + nop + .string32 "l" + nop + .string64 "m" + nop + .float 0e1.5 + nop + .single 0e2.5 + nop + .double 0e3.5 + nop + .dcb.d 1, 4.5 + nop + .fill 4, 4, 4 + nop + .space 4 + nop + .skip 4 + nop + .zero 4 + nop + .incbin "mapmisc.dat" + nop -- 2.30.2