This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

gas/config/tc-ia64.c patch for ehopt gas testsuite failure


This fixes the gas/testsuite/gas/elf/ehopt testsuite failure for ia64-linux.

The IA-64 assembler reference guide says that data allocation pseudo-ops auto
align themselves.  The IA-64 gas port was written to auto align all data
allocation pseudo-ops by default, except those known to be unaligned.
The ehopt.s testcase uses 4byte, which is not a valid IA-64 assembly pseudo-op
and so it gets auto aligned even though it should not be.

Long term, we should rewrite ia64 gas to that it doesn't auto-align by default
as that conflicts with normal gas semantics.  It should instead only align
IA-64 specific assembly pseudo-ops that require alignment, and leave everything
else unaligned.  Changing this seems likely to break stuff by accident though,
so for now I am adding the dwarf2 pseudo-ops 2byte/4byte/8byte to ia64 gas so
that they get handled correctly.  ia64 gcc never emits these psuedo-ops by
the way.  ia64 gcc uses the pseudo-ops documented in the IA-64 assembler
reference guide, data4.ua, etc.

2001-07-04  Jim Wilson  <wilson@redhat.com>

	* config/tc-ia64.c (md_pseudo_table): Add 2byte, 4byte, and 8byte.

Index: tc-ia64.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-ia64.c,v
retrieving revision 1.52
diff -p -r1.52 tc-ia64.c
*** tc-ia64.c	2001/07/05 02:30:21	1.52
--- tc-ia64.c	2001/07/05 03:19:39
*************** const pseudo_typeS md_pseudo_table[] =
*** 4701,4706 ****
--- 4701,4715 ----
      { "explicit", dot_dv_mode, 'e' },
      { "default", dot_dv_mode, 'd' },
  
+     /* ??? These are needed to make gas/testsuite/gas/elf/ehopt.s work.
+        IA-64 aligns data allocation pseudo-ops by default, so we have to
+        tell it that these ones are supposed to be unaligned.  Long term,
+        should rewrite so that only IA-64 specific data allocation pseudo-ops
+        are aligned by default.  */
+     {"2byte", stmt_cons_ua, 2},
+     {"4byte", stmt_cons_ua, 4},
+     {"8byte", stmt_cons_ua, 8},
+ 
      { NULL, 0, 0 }
    };
  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]