From 0a9ef439079f50221dad9eb5248387236d370c87 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 28 Dec 2000 10:07:56 +0000 Subject: * as.h (rs_align_test): New. * frags.c (NOP_OPCODE): Move default from read.c. (MAX_MEM_FOR_RS_ALIGN_CODE): New default. (frag_align_code): New. * frags.h (frag_align_code): Declare. * read.c (NOP_OPCODE): Remove. (do_align): Use frag_align_code. * write.c (NOP_OPCODE): Remove. (get_recorded_alignment): New. (cvt_frag_to_fill): Handle rs_align_test. (relax_segment): Likewise. (subsegs_finish): Align last subseg in section to the section alignment. Use frag_align_code. * write.h (get_recorded_alignment): Declare. * config/obj-coff.c (size_section): Handle rs_align_test. (fill_section, fixup_mdeps): Likewise. (write_object_file): Use frag_align_code. * config/tc-alpha.c (alpha_align): Use frag_align_code. (alpha_handle_align): New. * config/tc-alpha.h (HANDLE_ALIGN): New. (MAX_MEM_FOR_RS_ALIGN_CODE): New. * config/tc-i386.h (md_do_align): Use frag_align_code. (MAX_MEM_FOR_RS_ALIGN_CODE): New. * config/tc-ia64.c (ia64_md_do_align): Don't do code alignment. (ia64_handle_align): New. * config/tc-ia64.h (HANDLE_ALIGN): New. (MAX_MEM_FOR_RS_ALIGN_CODE): New. * config/tc-m32r.c (m32r_do_align): Remove. (m32r_handle_align): New. (fill_insn): Use frag_align_code. * config/tc-m32r.h (md_do_align): Remove. (HANDLE_ALIGN, MAX_MEM_FOR_RS_ALIGN_CODE): New. * config/tc-m88k.c, config/tc-m88k.h: Similarly. * config/tc-mips.c, config/tc-mips.h: Similarly. * config/tc-sh.c (sh_cons_align): Use rs_align_test. (sh_handle_align): Likewise. Handle rs_align_code. (sh_do_align): Remove. * config/tc-sh.h (md_do_align): Remove. (MAX_MEM_FOR_RS_ALIGN_CODE): New. * config/tc-sparc.c (sparc_cons_align): Use rs_align_test. (sparc_handle_align): Likewise. Handle rs_align_code. * config/tc-sparc.h (md_do_align): Remove. (MAX_MEM_FOR_RS_ALIGN_CODE): New. --- gas/read.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) (limited to 'gas/read.c') diff --git a/gas/read.c b/gas/read.c index 0db8697..1086bf0 100644 --- a/gas/read.c +++ b/gas/read.c @@ -67,13 +67,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA while (0) #endif -/* The NOP_OPCODE is for the alignment fill value. - Fill it a nop instruction so that the disassembler does not choke - on it. */ -#ifndef NOP_OPCODE -#define NOP_OPCODE 0x00 -#endif - char *input_line_pointer; /*->next char of source file to parse. */ #if BITS_PER_CHAR != 8 @@ -1172,26 +1165,21 @@ do_align (n, fill, len, max) int len; int max; { - char default_fill; - #ifdef md_do_align md_do_align (n, fill, len, max, just_record_alignment); #endif - if (fill == NULL) - { - if (subseg_text_p (now_seg)) - default_fill = NOP_OPCODE; - else - default_fill = 0; - fill = &default_fill; - len = 1; - } - /* Only make a frag if we HAVE to... */ if (n != 0 && !need_pass_2) { - if (len <= 1) + if (fill == NULL) + { + if (subseg_text_p (now_seg)) + frag_align_code (n, max); + else + frag_align (n, 0, max); + } + else if (len <= 1) frag_align (n, *fill, max); else frag_align_pattern (n, fill, len, max); -- cgit v1.1