X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-arm.h;h=5e32eac637226e6a3fc8eddb8722cd16d814f8d9;hb=bd920864f3dc2cad376989a642ab774aef6b2fce;hp=f095d0a892ecbb76775ce9d04ce678ee4a8804dd;hpb=827041555ac443bd57340060f3e034fd7b199dd8;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-arm.h b/gas/config/tc-arm.h index f095d0a892..5e32eac637 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-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org) Modified by David Taylor (dtaylor@armltd.co.uk) @@ -229,8 +229,7 @@ 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_FRAG_INIT(fragp, max_bytes) arm_init_frag (fragp, max_bytes) #define TC_ALIGN_ZERO_IS_DEFAULT 1 #define HANDLE_ALIGN(fragp) arm_handle_align (fragp) /* PR gas/19276: COFF/PE segment alignment is already handled in coff_frob_section(). */ @@ -255,21 +254,25 @@ arm_min (int am_p1, int am_p2) /* Registers are generally saved at negative offsets to the CFA. */ #define DWARF2_CIE_DATA_ALIGNMENT (-4) -/* State variables for IT block handling. */ -enum it_state +/* State variables for predication block handling. */ +enum pred_state { - OUTSIDE_IT_BLOCK, MANUAL_IT_BLOCK, AUTOMATIC_IT_BLOCK + OUTSIDE_PRED_BLOCK, MANUAL_PRED_BLOCK, AUTOMATIC_PRED_BLOCK }; -struct current_it +enum pred_type { + SCALAR_PRED, VECTOR_PRED +}; +struct current_pred { int mask; - enum it_state state; + enum pred_state state; int cc; int block_length; char *insn; int state_handled; int warn_deprecated; int insn_cond; + enum pred_type type; }; #ifdef OBJ_ELF @@ -304,7 +307,7 @@ struct arm_segment_info_type emitted only once per section, to save unnecessary bloat. */ unsigned int marked_pr_dependency; - struct current_it current_it; + struct current_pred current_pred; }; /* We want .cfi_* pseudo-ops for generating unwind info. */ @@ -337,7 +340,6 @@ struct arm_segment_info_type #define MD_PCREL_FROM_SECTION(F,S) md_pcrel_from_section(F,S) -extern long md_pcrel_from_section (struct fix *, segT); extern void arm_frag_align_code (int, int); extern void arm_validate_fix (struct fix *); extern const char * elf32_arm_target_format (void); @@ -382,3 +384,7 @@ 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 *); + +#define TC_LARGEST_EXPONENT_IS_NORMAL(PRECISION) \ + arm_is_largest_exponent_ok ((PRECISION)) +int arm_is_largest_exponent_ok (int precision);