2011-03-23 15:02:06 +00:00
|
|
|
|
2011-03-23 Eric B. Weddington <eric.weddington@atmel.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-avr.c (mcu_types): Add new xmega devices: atxmega64a1u,
|
|
|
|
|
atxmega128a1u, atxmega16x1, atxmega32x1, atxmega128b1, atxmega256a3bu.
|
|
|
|
|
* doc/c-avr.texi: Document new device names.
|
|
|
|
|
|
2011-03-22 18:10:48 +00:00
|
|
|
|
2011-03-22 Eric B. Weddington <eric.weddington@atmel.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-avr.c (struct avr_opcodes_s): Add opcode field.
|
|
|
|
|
(AVR_INSN): Change definition to match.
|
|
|
|
|
(avr_opcodes): Likewise, change to match.
|
|
|
|
|
(mcu_types): Add XMEGA architecture names and new XMEGA device names.
|
|
|
|
|
(md_show_usage): Add XMEGA architecture names.
|
|
|
|
|
(avr_operand): Add 'E' constraint for DES instruction of XMEGA devices.
|
|
|
|
|
Add support for SPM Z+ instruction.
|
|
|
|
|
* doc/c-avr.texi: Add documentation for XMEGA architectures and
|
|
|
|
|
devices.
|
|
|
|
|
|
2011-03-21 20:25:56 +00:00
|
|
|
|
2011-03-21 Eric B. Weddington <eric.weddington@atmel.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-avr.c (md_show_usage): Add "Assembler" text to output.
|
|
|
|
|
|
2011-03-18 11:21:33 +00:00
|
|
|
|
2011-03-18 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/obj-elf.c (elf_frob_symbol): Report S_SET_SIZE symbol
|
|
|
|
|
on .size expression errors rather than symbols in the size expression.
|
|
|
|
|
|
2011-03-18 11:16:28 +00:00
|
|
|
|
2011-03-18 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* input-scrub.c (line_numberT): Delete.
|
|
|
|
|
(input_scrub_close): Reset line counters.
|
|
|
|
|
* messages.c (as_show_where): Don't print invalid line number.
|
|
|
|
|
(as_warn_internal, as_bad_internal): Likewise.
|
|
|
|
|
|
2011-03-18 10:46:52 +00:00
|
|
|
|
2011-03-18 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* read.c (read_a_source_file): Remove md_after_pass_hook.
|
|
|
|
|
Move "quit" label before set of dot_symbol.
|
|
|
|
|
* config/tc-d10v.h (md_after_pass_hook): Don't define.
|
|
|
|
|
* config/tc-d30v.h (md_after_pass_hook): Likewise.
|
|
|
|
|
* config/tc-m32r.h (md_after_pass_hook): Likewise.
|
|
|
|
|
(md_cleanup): Define to call m32r_fill_insn.
|
|
|
|
|
|
2011-03-18 09:54:58 +00:00
|
|
|
|
2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-s390.c (md_parse_option): Add -march=all option which
|
|
|
|
|
switches to the highest available CPU.
|
|
|
|
|
|
2011-03-17 10:59:29 +00:00
|
|
|
|
2011-03-17 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR 12569
|
|
|
|
|
* expr.c (operand): Correct passing of "mode" to expr.
|
|
|
|
|
* read.c (do_org): Allow expr_section.
|
|
|
|
|
(get_known_segmented_expression): Don't assert anything about the
|
|
|
|
|
segment.
|
|
|
|
|
|
2011-03-16 12:58:26 +00:00
|
|
|
|
2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* as.c (show_usage): Add --size-check=.
|
|
|
|
|
(parse_args): Add and handle OPTION_SIZE_CHECK.
|
|
|
|
|
|
|
|
|
|
* as.h (flag_size_check): New.
|
|
|
|
|
|
|
|
|
|
* config/obj-elf.c (elf_frob_symbol): Use as_bad to report
|
|
|
|
|
bad .size directive only for --size-check=error.
|
|
|
|
|
|
|
|
|
|
* doc/as.texinfo: Document --size-check=.
|
|
|
|
|
|
2011-03-15 00:17:00 +00:00
|
|
|
|
2011-03-14 Mike Frysinger <vapier@gentoo.org>
|
|
|
|
|
|
|
|
|
|
* config/tc-bfin.c (bfin_cpus[]): Add 0.4 for
|
|
|
|
|
bf542/bf544/bf547/bf548/bf549.
|
|
|
|
|
|
include/elf/
* arm.h (R_ARM_IRELATIVE): New relocation.
bfd/
* reloc.c (BFD_RELOC_ARM_IRELATIVE): New relocation.
* bfd-in2.h: Regenerate.
* elf32-arm.c (elf32_arm_howto_table_2): Rename existing definition
to elf32_arm_howto_table_3 and replace with a single R_ARM_IRELATIVE
entry.
(elf32_arm_howto_from_type): Update accordingly.
(elf32_arm_reloc_map): Map BFD_RELOC_ARM_IRELATIVE to R_ARM_IRELATIVE.
(elf32_arm_reloc_name_lookup): Handle elf32_arm_howto_table_3.
(arm_plt_info): New structure, split out from elf32_arm_link_hash_entry
with an extra noncall_refcount field.
(arm_local_iplt_info): New structure.
(elf_arm_obj_tdata): Add local_iplt.
(elf32_arm_local_iplt): New accessor macro.
(elf32_arm_link_hash_entry): Replace plt_thumb_refcount,
plt_maybe_thumb_refcount and plt_got_offset with an arm_plt_info.
Change tls_type to a bitfield and add is_iplt.
(elf32_arm_link_hash_newfunc): Update accordingly.
(elf32_arm_allocate_local_sym_info): New function.
(elf32_arm_create_local_iplt): Likewise.
(elf32_arm_get_plt_info): Likewise.
(elf32_arm_plt_needs_thumb_stub_p): Likewise.
(elf32_arm_get_local_dynreloc_list): Likewise.
(create_ifunc_sections): Likewise.
(elf32_arm_copy_indirect_symbol): Update after the changes to
elf32_arm_link_hash_entry. Assert the is_iplt has not yet been set.
(arm_type_of_stub): Add an st_type argument. Use elf32_arm_get_plt_info
to get PLT information. Assert that all STT_GNU_IFUNC references
are turned into PLT references.
(arm_build_one_stub): Pass the symbol type to
elf32_arm_final_link_relocate.
(elf32_arm_size_stubs): Pass the symbol type to arm_type_of_stub.
(elf32_arm_allocate_irelocs): New function.
(elf32_arm_add_dynreloc): In static objects, use .rel.iplt for
all R_ARM_IRELATIVE.
(elf32_arm_allocate_plt_entry): New function.
(elf32_arm_populate_plt_entry): Likewise.
(elf32_arm_final_link_relocate): Add an st_type parameter.
Set srelgot to null for static objects. Use separate variables
to record which st_value and st_type should be used when generating
a dynamic relocation. Use elf32_arm_get_plt_info to find the
symbol's PLT information, setting has_iplt_entry, splt,
plt_offset and gotplt_offset accordingly. Check whether
STT_GNU_IFUNC symbols should resolve to an .iplt entry, and change
the relocation target accordingly. Broaden assert to include
.iplts. Don't set sreloc for static relocations. Assert that
we only generate dynamic R_ARM_RELATIVE relocations for R_ARM_ABS32
and R_ARM_ABS32_NOI. Generate R_ARM_IRELATIVE relocations instead
of R_ARM_RELATIVE relocations if the target is an STT_GNU_IFUNC
symbol. Pass the symbol type to arm_type_of_stub. Conditionally
resolve GOT references to the .igot.plt entry.
(elf32_arm_relocate_section): Update the call to
elf32_arm_final_link_relocate.
(elf32_arm_gc_sweep_hook): Use elf32_arm_get_plt_info to get PLT
information. Treat R_ARM_REL32 and R_ARM_REL32_NOI as call
relocations in shared libraries and relocatable executables.
Count non-call PLT references. Use elf32_arm_get_local_dynreloc_list
to get the list of dynamic relocations for a local symbol.
(elf32_arm_check_relocs): Always create ifunc sections. Set isym
at the same time as setting h. Use elf32_arm_allocate_local_sym_info
to allocate local symbol information. Treat R_ARM_REL32 and
R_ARM_REL32_NOI as call relocations in shared libraries and
relocatable executables. Record PLT information for local
STT_GNU_IFUNC functions as well as global functions. Count
non-call PLT references. Use elf32_arm_get_local_dynreloc_list
to get the list of dynamic relocations for a local symbol.
(elf32_arm_adjust_dynamic_symbol): Handle STT_GNU_IFUNC symbols.
Don't remove STT_GNU_IFUNC PLTs unless all references have been
removed. Update after the changes to elf32_arm_link_hash_entry.
(allocate_dynrelocs_for_symbol): Decide whether STT_GNU_IFUNC PLT
entries should live in .plt or .iplt. Check whether the .igot.plt
and .got entries can be combined. Use elf32_arm_allocate_plt_entry
to allocate .plt and .(i)got.plt entries. Detect which .got
entries will need R_ARM_IRELATIVE relocations and use
elf32_arm_allocate_irelocs to allocate them. Likewise other
non-.got dynamic relocations.
(elf32_arm_size_dynamic_sections): Allocate .iplt, .igot.plt
and dynamic relocations for local STT_GNU_IFUNC symbols.
Check whether the .igot.plt and .got entries can be combined.
Detect which .got entries will need R_ARM_IRELATIVE relocations
and use elf32_arm_allocate_irelocs to allocate them. Use stashed
section pointers intead of strcmp checks. Handle iplt and igotplt.
(elf32_arm_finish_dynamic_symbol): Use elf32_arm_populate_plt_entry
to fill in .plt, .got.plt and .rel(a).plt entries. Point
STT_GNU_IFUNC symbols at an .iplt entry if non-call relocations
resolve to it.
(elf32_arm_output_plt_map_1): New function, split out from
elf32_arm_output_plt_map. Handle .iplt entries. Use
elf32_arm_plt_needs_thumb_stub_p.
(elf32_arm_output_plt_map): Call it.
(elf32_arm_output_arch_local_syms): Add mapping symbols for
local .iplt entries.
(elf32_arm_swap_symbol_in): Handle Thumb STT_GNU_IFUNC symbols.
(elf32_arm_swap_symbol_out): Likewise.
(elf32_arm_add_symbol_hook): New function.
(elf_backend_add_symbol_hook): Define for all targets.
opcodes/
* arm-dis.c (get_sym_code_type): Treat STT_GNU_IFUNCs as code.
gas/
* config/tc-arm.c (md_pcrel_from_section): Use S_FORCE_RELOC to
determine whether a relocation is needed.
(md_apply_fix, arm_apply_sym_value): Likewise.
ld/testsuite/
* ld-arm/ifunc-1.s, ld-arm/ifunc-1.dd, ld-arm/ifunc-1.gd,
ld-arm/ifunc-1.rd, ld-arm/ifunc-2.s, ld-arm/ifunc-2.dd,
ld-arm/ifunc-2.gd, ld-arm/ifunc-2.rd, ld-arm/ifunc-3.s,
ld-arm/ifunc-3.dd, ld-arm/ifunc-3.gd, ld-arm/ifunc-3.rd,
ld-arm/ifunc-4.s, ld-arm/ifunc-4.dd, ld-arm/ifunc-4.gd,
ld-arm/ifunc-4.rd, ld-arm/ifunc-5.s, ld-arm/ifunc-5.dd,
ld-arm/ifunc-5.gd, ld-arm/ifunc-5.rd, ld-arm/ifunc-6.s,
ld-arm/ifunc-6.dd, ld-arm/ifunc-6.gd, ld-arm/ifunc-6.rd,
ld-arm/ifunc-7.s, ld-arm/ifunc-7.dd, ld-arm/ifunc-7.gd,
ld-arm/ifunc-7.rd, ld-arm/ifunc-8.s, ld-arm/ifunc-8.dd,
ld-arm/ifunc-8.gd, ld-arm/ifunc-8.rd, ld-arm/ifunc-9.s,
ld-arm/ifunc-9.dd, ld-arm/ifunc-9.gd, ld-arm/ifunc-9.rd,
ld-arm/ifunc-10.s, ld-arm/ifunc-10.dd, ld-arm/ifunc-10.gd,
ld-arm/ifunc-10.rd, ld-arm/ifunc-11.s, ld-arm/ifunc-11.dd,
ld-arm/ifunc-11.gd, ld-arm/ifunc-11.rd, ld-arm/ifunc-12.s,
ld-arm/ifunc-12.dd, ld-arm/ifunc-12.gd, ld-arm/ifunc-12.rd,
ld-arm/ifunc-13.s, ld-arm/ifunc-13.dd, ld-arm/ifunc-13.gd,
ld-arm/ifunc-13.rd, ld-arm/ifunc-14.s, ld-arm/ifunc-14.dd,
ld-arm/ifunc-14.gd, ld-arm/ifunc-14.rd, ld-arm/ifunc-15.s,
ld-arm/ifunc-15.dd, ld-arm/ifunc-15.gd, ld-arm/ifunc-15.rd,
ld-arm/ifunc-16.s, ld-arm/ifunc-16.dd, ld-arm/ifunc-16.gd,
ld-arm/ifunc-16.rd, ld-arm/ifunc-dynamic.ld,
ld-arm/ifunc-static.ld: New tests.
* ld-arm/farcall-group.d, ld-arm/farcall-group-size2.d,
ld-arm/farcall-mixed-lib-v4t.d, ld-arm/farcall-mixed-lib.d: Update
for new stub hashes.
* ld-arm/arm-elf.exp: Run them.
2011-03-14 16:04:16 +00:00
|
|
|
|
2011-03-14 Richard Sandiford <richard.sandiford@linaro.org>
|
|
|
|
|
|
|
|
|
|
* config/tc-arm.c (md_pcrel_from_section): Use S_FORCE_RELOC to
|
|
|
|
|
determine whether a relocation is needed.
|
|
|
|
|
(md_apply_fix, arm_apply_sym_value): Likewise.
|
|
|
|
|
|
2011-03-14 15:55:04 +00:00
|
|
|
|
2011-03-14 Richard Sandiford <richard.sandiford@linaro.org>
|
|
|
|
|
|
|
|
|
|
* config/tc-arm.c (arm_adjust_symtab): Set the branch type
|
|
|
|
|
for Thumb symbols.
|
|
|
|
|
|
2011-03-11 14:18:24 +00:00
|
|
|
|
2011-03-11 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* remap.c (remap_debug_filename): Always allocate a buffer for the
|
|
|
|
|
returned pointer.
|
|
|
|
|
* stabs.c (stabs_generate_asm_file): Free the pointer returned by
|
|
|
|
|
remap_debug_filename.
|
|
|
|
|
|
2011-03-10 18:26:28 +00:00
|
|
|
|
2011-03-10 Michael Snyder <msnyder@vmware.com>
|
|
|
|
|
|
|
|
|
|
Revert the following change:
|
|
|
|
|
* dwarf2dbg.c (out_file_list): Free malloced 'dir'.
|
|
|
|
|
(out_debug_info): Free malloced 'dirname' and 'comp_dir'.
|
|
|
|
|
|
2011-03-10 10:06:05 +00:00
|
|
|
|
2011-03-10 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* gas/config/obj-elf.h (ELF_TARGET_SYMBOL_FIELDS,
|
|
|
|
|
TARGET_SYMBOL_FIELDS): Don't define.
|
|
|
|
|
* gas/config/tc-arc.c (arc_common): Use correct symbol "local" field.
|
|
|
|
|
|
2011-03-10 00:52:09 +00:00
|
|
|
|
2011-03-09 Michael Snyder <msnyder@vmware.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2dbg.c (out_file_list): Free malloced 'dir'.
|
|
|
|
|
(out_debug_info): Free malloced 'dirname' and 'comp_dir'.
|
2011-03-10 18:26:28 +00:00
|
|
|
|
(emit_fixed_inc_line_addr): Assign instead of conditional in
|
|
|
|
|
assert.
|
2011-03-10 00:52:09 +00:00
|
|
|
|
|
2011-03-06 14:05:25 +00:00
|
|
|
|
2011-03-05 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* config/obj-elf.c (elf_frob_symbol): Mention symbol name in
|
|
|
|
|
non-constant .size expression.
|
|
|
|
|
|
2011-03-02 17:23:09 +00:00
|
|
|
|
2011-03-02 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ecoff.c: Incldue filenames.h
|
|
|
|
|
|
2011-02-28 18:32:52 +00:00
|
|
|
|
2011-02-28 Kai Tietz <kai.tietz@onevision.com>
|
|
|
|
|
|
|
|
|
|
* depend.c (register_dependency): Use filename_(n)cmp.
|
|
|
|
|
* dwarf2dbg.c (get_filenum): Likewise.
|
|
|
|
|
* ecoff.c (add_file): Likewise.
|
|
|
|
|
(ecoff_generate_asm_lineno): Likewise.
|
|
|
|
|
* input-scrub.c (new_logical_line_flags): Likewise.
|
|
|
|
|
* listing.c (file_info): Likewise.
|
|
|
|
|
(listing_newline): Likewise.
|
|
|
|
|
* remap.c (remap_debug_filename): Likewise.
|
|
|
|
|
* stabs.c (generate_asm_file): Likewise.
|
|
|
|
|
(stabs_generate_asm_lineno): Likewise.
|
|
|
|
|
|
2011-02-28 16:26:46 +00:00
|
|
|
|
2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-mips.c (append_insn): Disable branch relaxation for
|
|
|
|
|
DSP instructions.
|
|
|
|
|
|
2011-02-28 16:06:51 +00:00
|
|
|
|
2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-mips.c (macro): Handle M_PREF_AB.
|
|
|
|
|
|
2011-02-28 15:52:26 +00:00
|
|
|
|
2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-mips.c (RELAX_BRANCH_ENCODE): Encode the temporary
|
|
|
|
|
register to use.
|
|
|
|
|
(RELAX_BRANCH_UNCOND): Adjust accordingly.
|
|
|
|
|
(RELAX_BRANCH_LIKELY): Likewise.
|
|
|
|
|
(RELAX_BRANCH_LINK): Likewise.
|
|
|
|
|
(RELAX_BRANCH_TOOFAR): Likewise.
|
|
|
|
|
(RELAX_BRANCH_AT): New macro.
|
|
|
|
|
(append_insn): Encode the temporary register to use in standard
|
|
|
|
|
MIPS branch relaxation.
|
|
|
|
|
(relaxed_branch_length): Update according to changes to
|
|
|
|
|
RELAX_BRANCH_ENCODE.
|
|
|
|
|
(md_convert_frag): Use the encoded register as the temporary.
|
|
|
|
|
|
2011-02-28 15:44:53 +00:00
|
|
|
|
2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-mips.c (mips_fix_adjustable): On REL targets also
|
|
|
|
|
reject PC-relative relocations.
|
|
|
|
|
|
2011-02-28 15:33:25 +00:00
|
|
|
|
2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-mips.c (md_convert_frag): Correct message
|
|
|
|
|
capitalization.
|
|
|
|
|
|
2011-02-28 04:45:59 +00:00
|
|
|
|
2011-02-28 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* symbols.c (report_op_error): Remove unnecessary forward declaration.
|
|
|
|
|
Add "op" parameter. Report operator and operand segments in error
|
|
|
|
|
message, not operand symbols.
|
|
|
|
|
(resolve_symbol_value): Always set segment for equated symbols, not
|
|
|
|
|
just when finalizing. Adjust report_op_error calls.
|
|
|
|
|
|
2011-02-25 19:19:45 +00:00
|
|
|
|
2011-02-25 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
2011-02-25 19:20:58 +00:00
|
|
|
|
* config/tc-i386.c (reloc): Don't sign-check 4-byte relocations
|
|
|
|
|
if 64bit relocations aren't allowed.
|
2011-02-25 19:19:45 +00:00
|
|
|
|
|
2011-02-25 13:45:54 +00:00
|
|
|
|
2011-02-25 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR gas/12519
|
|
|
|
|
* config/obj-elf.c (elf_frob_symbol): Properly handle size expression.
|
|
|
|
|
|
2011-02-21 23:27:02 +00:00
|
|
|
|
2011-02-21 Maciej W. Rozycki <macro@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-mips.c (mips_ip) <'o'>: Remove duplicate
|
|
|
|
|
initialization of offset_reloc.
|
|
|
|
|
|
2011-02-15 18:01:07 +00:00
|
|
|
|
2011-02-15 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* dw2gencfi.c (dot_cfi_dummy): New.
|
|
|
|
|
(cfi_pseudo_table) [!TARGET_USE_CFIPOP]: New.
|
|
|
|
|
* read.c (pobegin): Unconditionally call cfi_pop_insert.
|
|
|
|
|
|
2011-02-13 21:00:14 +00:00
|
|
|
|
2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2011-02-13 18:53:16 +00:00
|
|
|
|
2011-02-13 Mike Frysinger <vapier@gentoo.org>
|
|
|
|
|
|
|
|
|
|
* config/bfin-lex.l (BYTEOP2M): Remove tokenization.
|
|
|
|
|
* config/bfin-parse.y (BYTEOP2M): Delete token.
|
|
|
|
|
(asm_1): Remove BYTEOP2M insn matching.
|
|
|
|
|
|
2011-02-12 19:36:31 +00:00
|
|
|
|
2011-02-12 Mike Frysinger <vapier@gentoo.org>
|
|
|
|
|
|
|
|
|
|
* config/bfin-defs.h: Include opcode/bfin.h.
|
|
|
|
|
(M_S2RND, M_T, M_W32, M_FU, M_TFU, M_IS, M_ISS2, M_IH, M_IU): Delete.
|
|
|
|
|
|
2011-02-11 19:05:30 +00:00
|
|
|
|
2011-02-11 Mike Frysinger <vapier@gentoo.org>
|
|
|
|
|
|
|
|
|
|
* doc/c-bfin.texi (Instruction Delimiting): Fix occur typo.
|
|
|
|
|
(Modify Registers): Fix subtracted typo.
|
|
|
|
|
(.byte2): Extend and swap descriptions with .byte4.
|
|
|
|
|
(.byte4): Extend and swap descriptions with .byte2.
|
|
|
|
|
(.db, .dw, .dd): Document behavior.
|
|
|
|
|
|
2011-02-11 19:04:33 +00:00
|
|
|
|
2011-02-11 Mike Frysinger <vapier@gentoo.org>
|
|
|
|
|
|
|
|
|
|
* config/bfin-parse.y (TESTSET): Reject REG_SP and REG_FP.
|
|
|
|
|
|
2011-02-10 22:50:09 +00:00
|
|
|
|
2011-02-11 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* doc/c-ppc.texi (PowerPC-Opts <-nops>): Clarify.
|
|
|
|
|
|
2011-02-10 12:29:23 +00:00
|
|
|
|
2011-02-10 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* doc/as.texinfo (Overview): Add missing markup around Blackfin
|
|
|
|
|
and PowerPC options.
|
|
|
|
|
|
2011-02-10 11:59:12 +00:00
|
|
|
|
2011-02-10 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-ppc.c (md_show_usage): Remove -l and -b. Add -K PIC.
|
|
|
|
|
* doc/as.texinfo: Refer to and include c-ppc.texi for PowerPC options.
|
|
|
|
|
(Overview <Target PowerPC options>): Add a number of missing options.
|
|
|
|
|
* doc/c-ppc.texi: Likewise. Add markup for use in manpage generation.
|
|
|
|
|
|
2011-02-08 20:21:26 +00:00
|
|
|
|
2011-02-08 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR gas/6957
|
|
|
|
|
* config/tc-i386.c (i386_align_code): Use f32_patt when tuning
|
|
|
|
|
for i686.
|
|
|
|
|
|
2011-02-08 18:12:25 +00:00
|
|
|
|
2011-02-08 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.c (set_cpu_arch): Also update cpu_arch_isa_flags
|
|
|
|
|
for ISA extensions.
|
|
|
|
|
(md_parse_option): Likewise.
|
|
|
|
|
|
2011-02-03 23:20:26 +00:00
|
|
|
|
2011-02-04 Bernd Schmidt <bernds@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* doc/as.texinfo (Target TIC6X options): Don't mention "-matomic".
|
|
|
|
|
* doc/c-tic6x.texi (TIC6X Directives): Don't mention ".atomic".
|
|
|
|
|
(TIC6X Options): Don't mention "-matomic".
|
|
|
|
|
* config/tc-tic6x.c (OPTION_MATOMIC, OPTION_MNO_ATOMIC): Delete.
|
|
|
|
|
(md_longopts): Remove corresponding entries.
|
|
|
|
|
(md_parse_option): Don't handle them.
|
|
|
|
|
(md_show_usage): Don't document them.
|
|
|
|
|
(tic6x_atomic): Delete variable.
|
|
|
|
|
(tic6x_update_features): Always copy tic6x_arch_enable to
|
|
|
|
|
tic6x_features.
|
|
|
|
|
(tic6x_arch_enable): Remove references to TIC6X_INSN_ATOMIC.
|
|
|
|
|
(s_tic6x_atomic, s_tic6x_noatomic): Remove functions.
|
|
|
|
|
(md_pseudo_table): Remove ".atomic" and ".noatomic".
|
|
|
|
|
|
2011-01-31 16:43:15 +00:00
|
|
|
|
2011-01-31 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* write.c (write_contents): Include output file name and bfd error
|
|
|
|
|
value when reporting the inability to write to the output file.
|
|
|
|
|
* config/tc-rx.c (rx_handle_align): Do not insert NOPs into align
|
|
|
|
|
frag that has a non-zero fill value.
|
|
|
|
|
|
2011-01-27 22:38:32 +00:00
|
|
|
|
2011-01-27 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-rx.c (md_convert_frag): If we can't compute the target
|
|
|
|
|
address, zero out the values stored in the object file to make
|
|
|
|
|
objdump's output consistent.
|
|
|
|
|
|
2011-01-26 10:16:12 +00:00
|
|
|
|
2011-01-26 Kai Tietz <kai.tietz@onevision.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.c (md_begin): Set for x64 windows COFF target
|
|
|
|
|
x86_dwarf2_return_column to 32.
|
|
|
|
|
|
2011-01-20 12:49:05 +00:00
|
|
|
|
2011-01-20 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR gas/12384
|
|
|
|
|
* config/tc-h8300.c (constant_fits_width_p): Use correct type for
|
|
|
|
|
comparison.
|
|
|
|
|
|
2011-01-19 00:24:23 +00:00
|
|
|
|
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* write.c (compress_debug): Return if section size is smaller
|
|
|
|
|
than 32 bytes.
|
|
|
|
|
|
2011-01-18 18:55:59 +00:00
|
|
|
|
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR gas/12409
|
|
|
|
|
* write.c (compress_debug): Return if section size is 0.
|
|
|
|
|
|
2011-01-18 14:10:44 +00:00
|
|
|
|
2011-01-18 Mingfeng Wu <mingfeng@faraday-tech.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-arm.c (arm_cpus): Add Faraday ARMv5TE compatible
|
|
|
|
|
cores: fa606te, fa616te, fmp626. Modify the VFP of fa626te.
|
|
|
|
|
* doc/c-arm.texi (ARM Options): Add -mcpu={fa606te, fa616te,
|
|
|
|
|
fmp626} options.
|
|
|
|
|
|
2011-01-18 13:37:39 +00:00
|
|
|
|
2011-01-18 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR gas/12390
|
|
|
|
|
* doc/all.texi: Add NS32K
|
|
|
|
|
* doc/as.texinfo: Remove target specific details of which
|
|
|
|
|
characters act as comment initiators and statement separators into
|
|
|
|
|
individual target specific files.
|
|
|
|
|
* doc/c-alpha.texi (Alpha-Chars): Document special behaviour of
|
|
|
|
|
the hash character at the start of a line.
|
|
|
|
|
* doc/c-arm.texi (ARM-Chars): Likewise.
|
|
|
|
|
* doc/c-avr.texi (AVR-Chars): Likewise.
|
|
|
|
|
* doc/c-d10v.texi (D10V-Chars): Likewise.
|
|
|
|
|
* doc/c-d30v.texi (D30V-Chars): Likewise.
|
|
|
|
|
* doc/c-mmix.texi (MMIX-Chars): Likewise.
|
|
|
|
|
* doc/c-s390.texi (s390 characters): Likewise.
|
|
|
|
|
* doc/c-sh.texi (SH-Chars): Likewise.
|
|
|
|
|
* doc/c-sh64.texi (SH64-Chars): Likewise.
|
|
|
|
|
* doc/c-sparc.texi (SPARC-Chars): Likewise.
|
|
|
|
|
* doc/c-tic6x.texi (TIC6X Syntax): Likewise.
|
|
|
|
|
* doc/c-xtensa.texi (Xtensa Syntax): Likewise.
|
|
|
|
|
* doc/c-z80.texi (Z80-Chars): Likewise.
|
|
|
|
|
* doc/c-z8k.texi (Z8000-Chars): Likewise.
|
|
|
|
|
* doc/c-pdp11.texi (PDP11-Syntax): Document line separator character.
|
|
|
|
|
* doc/c-arc.texi (ARC-Chars): Fill in this subsection.
|
|
|
|
|
* doc/c-bfin.texi (Blackfin Syntax): Document line comment and
|
|
|
|
|
line separator characters.
|
|
|
|
|
* doc/c-cr16.texi (CR16 Syntax): Likewise.
|
|
|
|
|
* doc/c-i386.texi (i386-Chars): Likewise.
|
|
|
|
|
* doc/c-i860.texi (i860-Chars): Likewise.
|
|
|
|
|
* doc/c-i960.texi (i960-Chars): Likewise.
|
|
|
|
|
* doc/c-ip2k.texi (IP2K-Chars): Likewise.
|
|
|
|
|
* doc/c-lm32.texi (LM32-Chars): likewise.
|
|
|
|
|
* doc/c-m32c.texi (M32C-Chars): Likewise.
|
|
|
|
|
* doc/c-m68hc11.texi (M68HC11-syntax): Likewise.
|
|
|
|
|
* doc/c-m68k.texi (M68K-Chars): Likewise.
|
|
|
|
|
* doc/c-microblaze.texi (MicroBlaze-Chars): Likewise.
|
|
|
|
|
* doc/c-msp430.texi (MSP430-Chars): Likewise.
|
|
|
|
|
* doc/c-mt.texi (MT-Chars): Likewise.
|
|
|
|
|
* doc/c-ns32k.texi (NS32K-Chars): Likewise.
|
|
|
|
|
* doc/c-pj.texi (PJ-Chars): Likewise.
|
|
|
|
|
* doc/c-ppc.texi (PowerPC-Chars): Likewise.
|
|
|
|
|
* doc/c-rx.texi (RX-Chars): Likewise.
|
|
|
|
|
* doc/c-score.texi (SCORE-Chars): Likewise.
|
|
|
|
|
* doc/c-tic54x.texi (TIC54X-Chars): Likewise.
|
|
|
|
|
* doc/c-v850.texi (V850-Chars): Likewise.
|
|
|
|
|
* doc/c-vax.texi (VAX-Chars): Likewise.
|
|
|
|
|
* doc/c-xc16x.texi (xc16x-Chars): Likewise.
|
|
|
|
|
|
Add support for TBM instructions.
gas/
2011-01-17 Quentin Neill <quentin.neill@amd.com>
* config/tc-i386.c (cpu_arch): Add CPU_TBM_FLAGS.
* doc/c-i386.texi (i386-TBM): New section.
opcodes/
2011-01-17 Quentin Neill <quentin.neill@amd.com>
* i386-dis.c (REG_XOP_TBM_01): New.
(REG_XOP_TBM_02): New.
(reg_table): Add REG_XOP_TBM_01 and REG_XOP_TBM_02 tables.
(xop_table): Redirect to REG_XOP_TBM_01 and REG_XOP_TBM_02
entries, and add bextr instruction.
* i386-gen.c (cpu_flag_init): Add CPU_TBM_FLAGS, CpuTBM.
(cpu_flags): Add CpuTBM.
* i386-opc.h (CpuTBM) New.
(i386_cpu_flags): Add bit cputbm.
* i386-opc.tbl: Add bextr, blcfill, blci, blcic, blcmsk,
blcs, blsfill, blsic, t1mskc, and tzmsk.
* i386-init.h: Regenerated.
* i386-tbl.h: Regenerated
gas/testsuite
2011-01-17 Quentin Neill <quentin.neill@amd.com>
* gas/i386/tbm.s: New.
* gas/i386/tbm.d: New.
* gas/i386/tbm-intel.d: New.
* gas/i386/x86-64-tbm.s: New.
* gas/i386/x86-64-tbm.d: New.
* gas/i386/x86-64-tbm-intel.d: New.
* gas/i386/arch-10.d: Add tbm flag and TBM instruction pattern.
* gas/i386/arch-10.s: Add a TBM instruction.
* gas/i386/arch-10-1.l: Add TBM instruction pattern.
* gas/i386/arch-10-2.l: Likewise.
* gas/i386/arch-10-3.l: Likewise.
* gas/i386/arch-10-4.l: Likewise.
* gas/i386/x86-64-arch-2.s: Likewise.
* gas/i386/x86-64-arch-2.d: Likewise.
2011-01-17 18:40:36 +00:00
|
|
|
|
2011-01-17 Quentin Neill <quentin.neill@amd.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.c (cpu_arch): Add CPU_TBM_FLAGS.
|
|
|
|
|
|
|
|
|
|
* doc/c-i386.texi (i386-TBM): New section.
|
|
|
|
|
|
2011-01-16 17:06:12 +00:00
|
|
|
|
2011-01-16 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.c (disallow_64bit_disp): Renamed to ...
|
|
|
|
|
(disallow_64bit_reloc): This.
|
|
|
|
|
(md_assemble): Don't check movabs for x32 mode here.
|
|
|
|
|
(i386_target_format): Updated.
|
|
|
|
|
(tc_gen_reloc): Check if 64bit relocations are allowed.
|
|
|
|
|
|
2011-01-15 15:48:02 +00:00
|
|
|
|
2011-01-15 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.c (disallow_64bit_disp): New.
|
|
|
|
|
(x86_elf_abi): Replace X86_64_LP64_ABI/X86_64_ILP32_ABI with
|
|
|
|
|
X86_64_ABI/X86_64_X32_ABI.
|
|
|
|
|
(md_assemble): Don't allow movabs with relocation in x32 mode.
|
|
|
|
|
(i386_target_format): Updated.
|
|
|
|
|
|
2011-01-14 23:07:11 +00:00
|
|
|
|
2011-01-14 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.c (OPTION_N32): Renamed to ...
|
|
|
|
|
(OPTION_X32): This.
|
|
|
|
|
(md_longopts): Replace n32 with x32.
|
|
|
|
|
(md_parse_option): Updated.
|
|
|
|
|
(md_show_usage): Likewise.
|
|
|
|
|
|
2011-01-15 17:25:30 +00:00
|
|
|
|
* doc/c-i386.texi: Replace --n32 with --x32.
|
2011-01-14 23:07:11 +00:00
|
|
|
|
|
2011-01-11 07:22:09 +00:00
|
|
|
|
2011-01-11 Mingjie Xing <mingjie.xing@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-mips.c (mips_ip): Update error messages. Take an
|
|
|
|
|
unadjusted offset for "+c" argument.
|
|
|
|
|
|
2011-01-10 10:10:06 +00:00
|
|
|
|
2011-01-10 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.c (x86_elf_abi): Only define for targets that use
|
|
|
|
|
it.
|
|
|
|
|
|
2011-01-10 09:50:02 +00:00
|
|
|
|
2011-01-10 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-arm.c (s_arm_tls_desceq): Move code into ELF-only
|
|
|
|
|
part of the file.
|
|
|
|
|
|
bfd/
* reloc.c (BFD_RELOC_ARM_TLS_GOTDESC, BFD_RELOC_ARM_TLS_CALL,
BFD_RELOC_ARM_THM_TLS_CALL, BFD_RELOC_ARM_TLS_DESCSEQ,
BFD_RELOC_ARM_THM_TLS_DESCSEQ, BFD_RELOC_ARM_TLS_DESC): New
relocations.
* libbfd.h: Rebuilt.
* bfd-in2.h: Rebuilt.
* elf32-arm.c (elf32_arm_howto_table_1): Add new relocations.
(elf32_arm_reloc_map): Likewise.
(tls_trampoline, dl_tlsdesc_lazy_trampoline): New PLT templates.
(elf32_arm_stub_long_branch_any_tls_pic,
elf32_arm_stub_long_branch_v4t_thumb_tls_pic): New stub templates.
(DEF_STUBS): Add new stubs.
(struct_elf_arm_obj_data): Add local_tlsdesc_gotent field.
(elf32_arm_local_tlsdesc_gotent): New.
(GOT_TLS_GDESC): New mask.
(GOT_TLS_GD_ANY): Define.
(struct elf32_arm_link_hash_entry): Add tlsdesc_got field.
(elf32_arm_compute_jump_table_size): New.
(struct elf32_arm_link_hash_table): Add next_tls_desc_index,
num_tls_desc, dt_tlsdesc_plt, dt_tlsdesc_got, tls_trampoline,
sgotplt_jump_table_size fields.
(elf32_arm_link_hash_newfunc): Initialize tlsdesc_got field.
(elf32_arm_link_hash_table_create): Initialize new fields.
(arm_type_of_stub): Check TLS desc relocs too.
(elf32_arm_stub_name): TLS desc relocs can be shared.
(elf32_arm_tls_transition): Determine relaxation.
(arm_stub_required_alignment): Add tls stubs.
(elf32_arm_size_stubs): Likewise.
(elf32_arm_tls_relax): Perform TLS relaxing.
(elf32_arm_final_link_relocate): Process TLS DESC relocations.
(IS_ARM_TLS_GNU_RELOC): New.
(IS_ARM_TLS_RELOC): Use it.
(elf32_arm_relocate_section): Perform TLS relaxing.
(elf32_arm_check_relocs): Anticipate TLS relaxing, process tls
desc relocations.
(allocate_dynrelocs): Allocate tls desc relcoations.
(elf32_arm_output_arch_local_syms): Emit tls trampoline mapping
symbols.
(elf32_arm_size_dynamic_sections): Allocate tls trampolines and
got slots.
(elf32_arm_always_size_sections): New. Create _TLS_MODULE_BASE
symbol.
(elf32_arm_finish_dynamic_symbol): Adjust.
(arm_put_trampoline): New.
(elf32_arm_finish_dynamic_sections): Emit new dynamic tags and tls
trampolines.
(elf_backend_always_size_sections): Define.
include/elf/
* arm.h (R_ARM_TLS_DESC, R_ARM_TLS_GOTDESC, R_ARM_TLS_CALL,
R_ARM_TLS_DESCSEQ, T_ARM_THM_TLS_CALL, R_ARM_THM_TLS_DESCSEQ): New
relocations.
gas/
* doc/c-arm.texi: Document TLSDESC and TLSCALL relocations, and
.tlsdescseq directive.
* config/tc-arm.c (arm_typed_reg_parse): Check for potential reloc
following a symbol.
(s_arm_tls_descseq): New directive.
(md_pseudo_table): Add it.
(encode_branch): Allow TLS_CALL relocs too.
(do_t_blx, do_t_branch23): Use encode_branch.
(reloc_names): Add tlsdesc and tlscall.
(md_apply_fix): Process tls desc relocations.
(tc_gen_reloc): Likewise.
(arm_fix_adjustable): Likewise.
gas/testsuite/
* gas/arm/tls.s: Add tlsdesc tests.
* gas/arm/tls.d: Adjust.
ld/testsuite/
* ld-arm/arm-elf.exp: Added tests for new TLS handling
relocations.
* ld-arm/tls-descrelax-be32.d: New.
* ld-arm/tls-descrelax-be32.s: New.
* ld-arm/tls-descrelax-be8.d: New.
* ld-arm/tls-descrelax-be8.s: New.
* ld-arm/tls-descrelax-v7.d: New.
* ld-arm/tls-descrelax-v7.s: New.
* ld-arm/tls-descrelax.d: New.
* ld-arm/tls-descrelax.s: New.
* ld-arm/tls-descseq.d: New.
* ld-arm/tls-descseq.r: New.
* ld-arm/tls-descseq.s: New.
* ld-arm/tls-gdesc-got.d: New.
* ld-arm/tls-gdesc-got.s: New.
* ld-arm/tls-gdesc-nlazy.g: New.
* ld-arm/tls-gdesc-nlazy.s: New.
* ld-arm/tls-gdesc.d: New.
* ld-arm/tls-gdesc.r: New.
* ld-arm/tls-gdesc.s: New.
* ld-arm/tls-gdierelax.d: New.
* ld-arm/tls-gdierelax.s: New.
* ld-arm/tls-gdierelax2.d: New.
* ld-arm/tls-gdierelax2.s: New.
* ld-arm/tls-gdlerelax.d: New.
* ld-arm/tls-gdlerelax.s: New.
* ld-arm/tls-lib-loc.d: New.
* ld-arm/tls-lib-loc.r: New.
* ld-arm/tls-lib-loc.s: New.
* ld-arm/tls-longplt-lib.d: New.
* ld-arm/tls-longplt-lib.s: New.
* ld-arm/tls-longplt.d: New.
* ld-arm/tls-longplt.s: New.
* ld-arm/tls-mixed.r: New.
* ld-arm/tls-mixed.s: New.
* ld-arm/tls-thumb1.d: New.
* ld-arm/tls-thumb1.s: New.
* ld-arm/arm-elf.exp: New.
2011-01-10 08:40:19 +00:00
|
|
|
|
2011-01-10 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
Glauber de Oliveira Costa <glommer@gmail.com>
|
|
|
|
|
|
|
|
|
|
* doc/c-arm.texi: Document TLSDESC and TLSCALL relocations, and
|
|
|
|
|
.tlsdescseq directive.
|
|
|
|
|
* config/tc-arm.c (arm_typed_reg_parse): Check for potential reloc
|
|
|
|
|
following a symbol.
|
|
|
|
|
(s_arm_tls_descseq): New directive.
|
|
|
|
|
(md_pseudo_table): Add it.
|
|
|
|
|
(encode_branch): Allow TLS_CALL relocs too.
|
|
|
|
|
(do_t_blx, do_t_branch23): Use encode_branch.
|
|
|
|
|
(reloc_names): Add tlsdesc and tlscall.
|
|
|
|
|
(md_apply_fix): Process tls desc relocations.
|
|
|
|
|
(tc_gen_reloc): Likewise.
|
|
|
|
|
(arm_fix_adjustable): Likewise.
|
|
|
|
|
|
2011-01-07 17:44:30 +00:00
|
|
|
|
2011-01-07 Quentin Neill <quentin.neill@amd.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.c (cpu_arch): Add CPU_BMI_FLAGS.
|
|
|
|
|
|
|
|
|
|
* doc/c-i386.texi (i386-BMI): New section.
|
|
|
|
|
|
2011-01-06 16:41:35 +00:00
|
|
|
|
2011-01-06 Paul Koning <ni1d@arrl.net>
|
|
|
|
|
|
|
|
|
|
* config/tc-pdp11.c (parse_op_no_deferred): Allow PC-relative
|
|
|
|
|
references to absolute addresses.
|
|
|
|
|
|
2011-01-05 22:04:09 +00:00
|
|
|
|
2011-01-05 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-rx.c (tc_gen_reloc): Emit an RX_OP_NEG expression
|
|
|
|
|
instead of an RH_NEG32 one.
|
|
|
|
|
|
2011-01-05 21:35:08 +00:00
|
|
|
|
2011-01-05 Jonathan Wakely <jwakely.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* doc/c-i386.texi: Clarify --n32.
|
|
|
|
|
|
2011-01-05 00:16:57 +00:00
|
|
|
|
2011-01-04 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.c (build_modrm_byte): Allow encoding 32/64bit
|
|
|
|
|
integer registers in VEX.vvvv. Check register-only source
|
|
|
|
|
operand when two source operands are swapped. Properly update
|
|
|
|
|
destination when two source operands are swapped.
|
|
|
|
|
|
2011-01-01 20:55:48 +00:00
|
|
|
|
2011-01-01 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* gas.c (parse_args): Update copyright to 2011.
|
|
|
|
|
|
2011-01-01 16:44:48 +00:00
|
|
|
|
For older changes see ChangeLog-2010
|
2002-01-07 12:12:47 +00:00
|
|
|
|
|
|
|
|
|
Local Variables:
|
|
|
|
|
mode: change-log
|
|
|
|
|
left-margin: 8
|
|
|
|
|
fill-column: 74
|
|
|
|
|
version-control: never
|
|
|
|
|
End:
|