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]
Other format: [Raw text]

[PATCH] Fix s390{,x} ld-size-1 failures (take 2)


On Wed, May 05, 2004 at 03:53:53PM +0930, Alan Modra wrote:
> On Tue, May 04, 2004 at 02:41:25PM +0200, Jakub Jelinek wrote:
> > 	* config/tc-s390.h (md_do_align): Pass (1 << n) - 1 instead of 15
> > 	as max_chars to frag_var.
> 
> I don't think this is the right fix.  It looks to me that s390 shouldn't
> be defining md_do_align or HANDLE_ALIGN, as s390 gas doesn't do special
> nop fill patterns.

Like this?

2004-05-05  Jakub Jelinek  <jakub@redhat.com>

	* tc-s390.h (md_do_align, HANDLE_ALIGN): Remove.
	(NOP_OPCODE): Define.
	(s390_align_code): Remove prototype.
	* tc-s390.c (s390_align_code): Remove.

--- gas/config/tc-s390.h.jj	2003-07-10 15:03:13.000000000 +0200
+++ gas/config/tc-s390.h	2004-05-05 09:09:53.083575145 +0200
@@ -1,5 +1,5 @@
 /* tc-s390.h -- Header file for tc-s390.c.
-   Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
    Written by Martin Schwidefsky (schwidefsky@de.ibm.com).
 
    This file is part of GAS, the GNU Assembler.
@@ -76,23 +76,7 @@ extern int target_big_endian;
 
 #define md_number_to_chars           number_to_chars_bigendian
 
-#define md_do_align(n, fill, len, max, around)                          \
-if ((n) && !need_pass_2 && (fill == 0) &&                               \
-    (bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0) {     \
-  char *p;                                                              \
-  p = frag_var (rs_align_code, 15, 1, (relax_substateT) max,            \
-                (symbolS *) 0, (offsetT) (n), (char *) 0);              \
-  *p = 0x07;                                                            \
-  goto around;                                                          \
-}
-
-extern void s390_align_code PARAMS ((fragS *, int));
-
-#define HANDLE_ALIGN(fragP)						\
-if (fragP->fr_type == rs_align_code)					\
-  s390_align_code (fragP, (fragP->fr_next->fr_address			\
-			   - fragP->fr_address				\
-			   - fragP->fr_fix));
+#define NOP_OPCODE 0x07
 
 /* call md_pcrel_from_section, not md_pcrel_from */
 #define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section(FIX, SEC)
--- gas/config/tc-s390.c.jj	2004-03-03 18:44:03.000000000 +0100
+++ gas/config/tc-s390.c	2004-05-05 09:10:17.651172312 +0200
@@ -1,5 +1,5 @@
 /* tc-s390.c -- Assemble for the S390
-   Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
 
    This file is part of GAS, the GNU Assembler.
@@ -540,19 +540,6 @@ s390_md_end ()
     bfd_set_arch_mach (stdoutput, bfd_arch_s390, bfd_mach_s390_31);
 }
 
-void
-s390_align_code (fragP, count)
-     fragS *fragP;
-     int count;
-{
-  /* We use nop pattern 0x0707.  */
-  if (count > 0)
-    {
-      memset (fragP->fr_literal + fragP->fr_fix, 0x07, count);
-      fragP->fr_var = count;
-    }
-}
-
 /* Insert an operand value into an instruction.  */
 
 static void


	Jakub


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