X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-ip2k.c;h=0adc672a12044fbd3af7d7b0a5089726836ec806;hb=9a01ec4c0368048fb5ea1ba1b3af9afbd651b529;hp=4f4cffe5939da8c22929263d656c1f3a180e7081;hpb=3739860c11a9cfcdaa4d5d204ea3536784de7bb3;p=binutils-gdb.git diff --git a/gas/config/tc-ip2k.c b/gas/config/tc-ip2k.c index 4f4cffe5939..0adc672a120 100644 --- a/gas/config/tc-ip2k.c +++ b/gas/config/tc-ip2k.c @@ -1,5 +1,5 @@ /* tc-ip2k.c -- Assembler for the Scenix IP2xxx. - Copyright (C) 2000-2015 Free Software Foundation, Inc. + Copyright (C) 2000-2021 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -26,7 +26,6 @@ #include "cgen.h" #include "elf/common.h" #include "elf/ip2k.h" -#include "libbfd.h" /* Structure to hold all of the different components describing an individual instruction. */ @@ -72,35 +71,18 @@ ip2k_elf_section_rtn (int i) if (force_code_align) { - /* The s_align_ptwo function expects that we are just after a .align - directive and it will either try and read the align value or stop - if end of line so we must fake it out so it thinks we are at the - end of the line. */ - char *old_input_line_pointer = input_line_pointer; - input_line_pointer = "\n"; - s_align_ptwo (1); + do_align (1, NULL, 0, 0); force_code_align = 0; - /* Restore. */ - input_line_pointer = old_input_line_pointer; } } static void ip2k_elf_section_text (int i) { - char *old_input_line_pointer; obj_elf_text(i); - /* the s_align_ptwo function expects that we are just after a .align - directive and it will either try and read the align value or stop if - end of line so we must fake it out so it thinks we are at the end of - the line. */ - old_input_line_pointer = input_line_pointer; - input_line_pointer = "\n"; - s_align_ptwo (1); + do_align (1, NULL, 0, 0); force_code_align = 0; - /* Restore. */ - input_line_pointer = old_input_line_pointer; } /* The target specific pseudo-ops which we support. */ @@ -130,7 +112,7 @@ size_t md_longopts_size = sizeof (md_longopts); const char * md_shortopts = ""; int -md_parse_option (int c ATTRIBUTE_UNUSED, char * arg ATTRIBUTE_UNUSED) +md_parse_option (int c ATTRIBUTE_UNUSED, const char * arg ATTRIBUTE_UNUSED) { switch (c) { @@ -178,6 +160,8 @@ md_begin (void) /* Set the machine type. */ bfd_default_set_arch_mach (stdoutput, bfd_arch_ip2k, ip2k_mach); + + literal_prefix_dollar_hex = true; } @@ -229,9 +213,9 @@ md_assemble (char * str) valueT md_section_align (segT segment, valueT size) { - int align = bfd_get_section_alignment (stdoutput, segment); + int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & (-1 << align)); + return ((size + (1 << align) - 1) & -(1 << align)); } @@ -328,10 +312,10 @@ md_number_to_chars (char * buf, valueT val, int n) number_to_chars_bigendian (buf, val, n); } -char * +const char * md_atof (int type, char * litP, int * sizeP) { - return ieee_md_atof (type, litP, sizeP, TRUE); + return ieee_md_atof (type, litP, sizeP, true); } @@ -401,7 +385,8 @@ ip2k_apply_fix (fixS *fixP, valueT *valueP, segT seg) CGEN_CPU_DESC cd = gas_cgen_cpu_desc; CGEN_INSN_INT insn_value = cgen_get_insn_value (cd, (unsigned char *) where, - CGEN_INSN_BITSIZE (fixP->fx_cgen.insn)); + CGEN_INSN_BITSIZE (fixP->fx_cgen.insn), + gas_cgen_cpu_desc->insn_endian); /* Preserve (DP) or (SP) specification. */ *valueP += (insn_value & 0x180); }