/* 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)
/* 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;
{
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);