X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-arm.h;h=319b2c2dfef4d8030f4403ea5b18aa0c517684f3;hb=04a3379aceaeb8e29f2586d756d5f2ef26c85e7e;hp=22162672c153337bce30e196b510ecd48ce97c14;hpb=7a5c933c7c2c3926b13a047c64f2af1d3ce8e1db;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-arm.h b/gas/config/tc-arm.h index 22162672c1..319b2c2dfe 100644 --- a/gas/config/tc-arm.h +++ b/gas/config/tc-arm.h @@ -1,5 +1,5 @@ /* This file is tc-arm.h - Copyright (C) 1994-2015 Free Software Foundation, Inc. + Copyright (C) 1994-2016 Free Software Foundation, Inc. Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org) Modified by David Taylor (dtaylor@armltd.co.uk) @@ -104,8 +104,9 @@ extern int arm_optimize_expr (expressionS *, operatorT, expressionS *); #define md_start_line_hook() arm_start_line_hook () -#define TC_START_LABEL_WITHOUT_COLON(c, l) tc_start_label_without_colon (c, l) -extern bfd_boolean tc_start_label_without_colon (char, const char *); +#define TC_START_LABEL_WITHOUT_COLON(NUL_CHAR, NEXT_CHAR) \ + tc_start_label_without_colon () +extern bfd_boolean tc_start_label_without_colon (void); #define tc_frob_label(S) arm_frob_label (S) @@ -179,7 +180,8 @@ void arm_copy_symbol_attributes (symbolS *, symbolS *); (arm_copy_symbol_attributes (DEST, SRC)) #endif -#define TC_START_LABEL(C,S,STR) (C == ':' || (C == '/' && arm_data_in_code ())) +#define TC_START_LABEL(STR, NUL_CHAR, NEXT_CHAR) \ + (NEXT_CHAR == ':' || (NEXT_CHAR == '/' && arm_data_in_code ())) #define tc_canonicalize_symbol_name(str) arm_canonicalize_symbol_name (str); #define obj_adjust_symtab() arm_adjust_symtab () @@ -245,10 +247,14 @@ arm_min (int am_p1, int am_p2) #define TC_FRAG_TYPE struct arm_frag_type /* NOTE: max_chars is a local variable from frag_var / frag_variant. */ #define TC_FRAG_INIT(fragp) arm_init_frag (fragp, max_chars) +#define TC_ALIGN_ZERO_IS_DEFAULT 1 #define HANDLE_ALIGN(fragp) arm_handle_align (fragp) -#define SUB_SEGMENT_ALIGN(SEG, FRCHAIN) \ +/* PR gas/19276: COFF/PE segment alignment is already handled in coff_frob_section(). */ +#ifndef TE_PE +#define SUB_SEGMENT_ALIGN(SEG, FRCHAIN) \ ((!(FRCHAIN)->frch_next && subseg_text_p (SEG)) \ ? arm_min (2, get_recorded_alignment (SEG)) : 0) +#endif #define md_do_align(N, FILL, LEN, MAX, LABEL) \ if (FILL == NULL && (N) != 0 && ! need_pass_2 && subseg_text_p (now_seg)) \ @@ -389,3 +395,6 @@ extern char arm_comment_chars[]; #define tc_line_separator_chars arm_line_separator_chars extern char arm_line_separator_chars[]; + +#define TC_EQUAL_IN_INSN(c, s) arm_tc_equal_in_insn ((c), (s)) +extern bfd_boolean arm_tc_equal_in_insn (int, char *);