From b9fcee797cc69e256f174c6665e88125e4ecc06b Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 27 Feb 2012 06:52:20 +0000 Subject: [PATCH] * config/tc-tic4x.c (tic4x_do_align): Remove ATTRIBUTE_UNUSED on params. Properly generate NOP pattern. Comment reason for subseg_text_p failure. --- gas/ChangeLog | 6 ++++++ gas/config/tc-tic4x.c | 30 +++++++++++++++++------------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 42d4ff1bcd..47dede44c2 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2012-02-27 Alan Modra + + * config/tc-tic4x.c (tic4x_do_align): Remove ATTRIBUTE_UNUSED on + params. Properly generate NOP pattern. Comment reason for + subseg_text_p failure. + 2012-02-27 Alan Modra * config/tc-h8300.c (constant_fits_width_p): Trim constant to 32 bits diff --git a/gas/config/tc-tic4x.c b/gas/config/tc-tic4x.c index 60f7fb41a7..fd6cec7f82 100644 --- a/gas/config/tc-tic4x.c +++ b/gas/config/tc-tic4x.c @@ -1,6 +1,6 @@ /* tc-tic4x.c -- Assemble for the Texas Instruments TMS320C[34]x. - Copyright (C) 1997,1998, 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010 - Free Software Foundation. Inc. + Copyright (C) 1997,1998, 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010, + 2012 Free Software Foundation. Inc. Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz) @@ -2955,13 +2955,11 @@ md_pcrel_from (fixS *fixP) /* Fill the alignment area with NOP's on .text, unless fill-data was specified. */ int -tic4x_do_align (int alignment ATTRIBUTE_UNUSED, - const char *fill ATTRIBUTE_UNUSED, - int len ATTRIBUTE_UNUSED, - int max ATTRIBUTE_UNUSED) +tic4x_do_align (int alignment, + const char *fill, + int len, + int max) { - unsigned long nop = TIC_NOP_OPCODE; - /* Because we are talking lwords, not bytes, adjust alignment to do words */ alignment += 2; @@ -2969,11 +2967,17 @@ tic4x_do_align (int alignment ATTRIBUTE_UNUSED, { if (fill == NULL) { - /*if (subseg_text_p (now_seg))*/ /* FIXME: doesn't work for .text for some reason */ - frag_align_pattern( alignment, (const char *)&nop, sizeof(nop), max); - return 1; - /*else - frag_align (alignment, 0, max);*/ + /* FIXME: subseg_text_p tests SEC_CODE which isn't in allowed + section flags. See bfd/coff-tic4x.c target vecs. */ + if (1 || subseg_text_p (now_seg)) + { + char nop[4]; + + md_number_to_chars (nop, TIC_NOP_OPCODE, 4); + frag_align_pattern (alignment, nop, sizeof (nop), max); + } + else + frag_align (alignment, 0, max); } else if (len <= 1) frag_align (alignment, *fill, max); -- 2.34.1