2012-02-27 14:40:42 +08:00
|
|
|
|
2012-02-27 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-h8300.c (constant_fits_width_p): Trim constant to 32 bits
|
|
|
|
|
and sign extend before range tests.
|
|
|
|
|
(constant_fits_size_p): Similarly.
|
|
|
|
|
(get_specific): Trim X_add_number to 32 bits.
|
|
|
|
|
(fix_operand_size): Likewise, and use unsigned test for signed
|
|
|
|
|
ranges.
|
|
|
|
|
|
2012-02-27 14:37:40 +08:00
|
|
|
|
2012-02-27 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-crx.c: Include bfd_stdint.h.
|
|
|
|
|
(getconstant): Remove irrelevant comment. Don't fail due to
|
|
|
|
|
sign-extension of int mask.
|
|
|
|
|
(check_range): Rewrite using unsigned arithmetic throughout.
|
|
|
|
|
|
2012-02-26 06:40:48 +08:00
|
|
|
|
2012-02-25 Walter Lee <walt@tilera.com>
|
|
|
|
|
|
|
|
|
|
* tc-tilepro.c (emit_tilepro_instruction): Check if symbol is
|
|
|
|
|
non-local before checking sy_value.
|
|
|
|
|
* tc-tilegx.c (emit_tilegx_instruction): Ditto.
|
|
|
|
|
|
Improve TLS support on TILE-Gx/TILEPro:
- Add support for TLS LE references.
- Support linker optimization of TLS references.
- Delete relocations of GOT/tp relative offsets beyond 32-bits.
This brings binutils in line with the support expected in gcc 4.7, for
TILE-Gx/TILEPro.
bfd/
* reloc.c: Add BFD_RELOC_TILEPRO_TLS_GD_CALL,
BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD,
BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD,
BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD,
BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD,
BFD_RELOC_TILEPRO_TLS_IE_LOAD, BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE,
BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE,
BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO,
BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO,
BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI,
BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI,
BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA,
BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA,
BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE,
BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE,
BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE,
BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE,
BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE,
BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE,
BFD_RELOC_TILEGX_TLS_GD_CALL, BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD,
BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD,
BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD,
BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD, BFD_RELOC_TILEGX_TLS_IE_LOAD,
BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD,
BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD,
BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD, BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD.
Delete BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT,
BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT,
BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT,
BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT,
BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT,
BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT,
BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT,
BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT,
BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD,
BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD,
BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD,
BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD,
BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD,
BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD,
BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD,
BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD,
BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE,
BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE,
BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE,
BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE,
BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE,
BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE,
BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE,
BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE.
* elf32-tilepro.c (tilepro_elf_howto_table): Update tilepro
relocations.
(tilepro_reloc_map): Ditto.
(tilepro_info_to_howto_rela): Ditto.
(reloc_to_create_func): Ditto.
(tilepro_tls_translate_to_le): New.
(tilepro_tls_translate_to_ie): New.
(tilepro_elf_tls_transition): New.
(tilepro_elf_check_relocs): Handle new tls relocations.
(tilepro_elf_gc_sweep_hook): Ditto.
(allocate_dynrelocs): Ditto.
(tilepro_elf_relocate_section): Ditto.
(tilepro_replace_insn): New.
(insn_mask_X1): New.
(insn_mask_X0_no_dest_no_srca): New
(insn_mask_X1_no_dest_no_srca): New
(insn_mask_Y0_no_dest_no_srca): New
(insn_mask_Y1_no_dest_no_srca): New
(srca_mask_X0): New
(srca_mask_X1): New
(insn_tls_le_move_X1): New
(insn_tls_le_move_zero_X0X1): New
(insn_tls_ie_lw_X1): New
(insn_tls_ie_add_X0X1): New
(insn_tls_ie_add_Y0Y1): New
(insn_tls_gd_add_X0X1): New
(insn_tls_gd_add_Y0Y1): New
* elfxx-tilegx.c (tilegx_elf_howto_table): Update tilegx
relocations.
(tilegx_reloc_map): Ditto.
(tilegx_info_to_howto_rela): Ditto.
(reloc_to_create_func): Ditto.
(tilegx_elf_link_hash_table): New field disable_le_transition.
(tilegx_tls_translate_to_le): New.
(tilegx_tls_translate_to_ie): New.
(tilegx_elf_tls_transition): New.
(tilegx_elf_check_relocs): Handle new tls relocations.
(tilegx_elf_gc_sweep_hook): Ditto.
(allocate_dynrelocs): Ditto.
(tilegx_elf_relocate_section): Ditto.
(tilegx_copy_bits): New.
(tilegx_replace_insn): New.
(insn_mask_X1): New.
(insn_mask_X0_no_dest_no_srca): New.
(insn_mask_X1_no_dest_no_srca): New.
(insn_mask_Y0_no_dest_no_srca): New.
(insn_mask_Y1_no_dest_no_srca): New.
(insn_mask_X0_no_operand): New.
(insn_mask_X1_no_operand): New.
(insn_mask_Y0_no_operand): New.
(insn_mask_Y1_no_operand): New.
(insn_tls_ie_ld_X1): New.
(insn_tls_ie_ld4s_X1): New.
(insn_tls_ie_add_X0X1): New.
(insn_tls_ie_add_Y0Y1): New.
(insn_tls_ie_addx_X0X1): New.
(insn_tls_ie_addx_Y0Y1): New.
(insn_tls_gd_add_X0X1): New.
(insn_tls_gd_add_Y0Y1): New.
(insn_move_X0X1): New.
(insn_move_Y0Y1): New.
(insn_add_X0X1): New.
(insn_add_Y0Y1): New.
(insn_addx_X0X1): New.
(insn_addx_Y0Y1): New.
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
gas/
* tc-tilepro.c (O_tls_le): Define operator.
(O_tls_le_lo16): Ditto.
(O_tls_le_hi16): Ditto.
(O_tls_le_ha16): Ditto.
(O_tls_gd_call): Ditto.
(O_tls_gd_add): Ditto.
(O_tls_ie_load): Ditto.
(md_begin): Delete old operators; handle new operators.
(emit_tilepro_instruction): Ditto.
(md_apply_fix): Ditto.
* tc-tilegx.c (O_hw1_got): Delete operator.
(O_hw2_got): Ditto.
(O_hw3_got): Ditto.
(O_hw2_last_got): Ditto.
(O_hw1_tls_gd): Ditto.
(O_hw2_tls_gd): Ditto.
(O_hw3_tls_gd): Ditto.
(O_hw2_last_tls_gd): Ditto.
(O_hw1_tls_ie): Ditto.
(O_hw2_tls_ie): Ditto.
(O_hw3_tls_ie): Ditto.
(O_hw2_last_tls_ie): Ditto.
(O_hw0_tls_le): Define operator.
(O_hw0_last_tls_le): Ditto.
(O_hw1_last_tls_le): Ditto.
(O_tls_gd_call): Ditto.
(O_tls_gd_add): Ditto.
(O_tls_ie_load): Ditto.
(O_tls_add): Ditto.
(md_begin): Delete old operators; handle new operators.
(emit_tilegx_instruction): Ditto.
(md_apply_fix): Ditto.
* doc/c-tilegx.texi: Delete old operators; document new operators.
* doc/c-tilepro.texi: Ditto.
include/elf/
* tilegx.h (R_TILEGX_IMM16_X0_HW1_GOT): Delete.
(R_TILEGX_IMM16_X1_HW1_GOT): Ditto.
(R_TILEGX_IMM16_X0_HW2_GOT): Ditto.
(R_TILEGX_IMM16_X1_HW2_GOT): Ditto.
(R_TILEGX_IMM16_X0_HW3_GOT): Ditto.
(R_TILEGX_IMM16_X1_HW3_GOT): Ditto.
(R_TILEGX_IMM16_X0_HW2_LAST_GOT): Ditto.
(R_TILEGX_IMM16_X1_HW2_LAST_GOT): Ditto.
(R_TILEGX_IMM16_X0_HW1_TLS_GD): Ditto.
(R_TILEGX_IMM16_X1_HW1_TLS_GD): Ditto.
(R_TILEGX_IMM16_X0_HW2_TLS_GD): Ditto.
(R_TILEGX_IMM16_X1_HW2_TLS_GD): Ditto.
(R_TILEGX_IMM16_X0_HW3_TLS_GD): Ditto.
(R_TILEGX_IMM16_X1_HW3_TLS_GD): Ditto.
(R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD): Ditto.
(R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD): Ditto.
(R_TILEGX_IMM16_X0_HW1_TLS_IE): Ditto.
(R_TILEGX_IMM16_X1_HW1_TLS_IE): Ditto.
(R_TILEGX_IMM16_X0_HW2_TLS_IE): Ditto.
(R_TILEGX_IMM16_X1_HW2_TLS_IE): Ditto.
(R_TILEGX_IMM16_X0_HW3_TLS_IE): Ditto.
(R_TILEGX_IMM16_X1_HW3_TLS_IE): Ditto.
(R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE): Ditto.
(R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE): Ditto.
(R_TILEGX_IMM16_X0_HW0_TLS_LE): New relocation.
(R_TILEGX_IMM16_X1_HW0_TLS_LE): Ditto.
(R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE): Ditto.
(R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE): Ditto.
(R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE): Ditto.
(R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE): Ditto.
(R_TILEGX_TLS_GD_CALL): Ditto.
(R_TILEGX_IMM8_X0_TLS_GD_ADD): Ditto.
(R_TILEGX_IMM8_X1_TLS_GD_ADD): Ditto.
(R_TILEGX_IMM8_Y0_TLS_GD_ADD): Ditto.
(R_TILEGX_IMM8_Y1_TLS_GD_ADD): Ditto.
(R_TILEGX_TLS_IE_LOAD): Ditto.
(R_TILEGX_IMM8_X0_TLS_ADD): Ditto.
(R_TILEGX_IMM8_X1_TLS_ADD): Ditto.
(R_TILEGX_IMM8_Y0_TLS_ADD): Ditto.
(R_TILEGX_IMM8_Y1_TLS_ADD): Ditto.
* tilepro.h (R_TILEPRO_TLS_GD_CALL): New relocation.
(R_TILEPRO_IMM8_X0_TLS_GD_ADD): Ditto.
(R_TILEPRO_IMM8_X1_TLS_GD_ADD): Ditto.
(R_TILEPRO_IMM8_Y0_TLS_GD_ADD): Ditto.
(R_TILEPRO_IMM8_Y1_TLS_GD_ADD): Ditto.
(R_TILEPRO_TLS_IE_LOAD): Ditto.
(R_TILEPRO_IMM16_X0_TLS_LE): Ditto.
(R_TILEPRO_IMM16_X1_TLS_LE): Ditto.
(R_TILEPRO_IMM16_X0_TLS_LE_LO): Ditto.
(R_TILEPRO_IMM16_X1_TLS_LE_LO): Ditto.
(R_TILEPRO_IMM16_X0_TLS_LE_HI): Ditto.
(R_TILEPRO_IMM16_X1_TLS_LE_HI): Ditto.
(R_TILEPRO_IMM16_X0_TLS_LE_HA): Ditto.
(R_TILEPRO_IMM16_X1_TLS_LE_HA): Ditto.
include/opcode/
* tilegx.h (tilegx_mnemonic): Add TILEGX_OPC_LD4S_TLS,
TILEGX_OPC_LD_TLS.
* tilepro.h (tilepro_mnemonic): Add TILEPRO_OPC_LW_TLS,
TILEPRO_OPC_LW_TLS_SN.
opcodes/
* tilegx-opc.c: Handle TILEGX_OPC_LD4S_TLS and TILEGX_OPC_LD_TLS.
* tilepro-opc.c: Handle TILEPRO_OPC_LW_TLS and
TILEPRO_OPC_LW_TLS_SN.
2012-02-26 06:24:21 +08:00
|
|
|
|
2012-02-25 Walter Lee <walt@tilera.com>
|
|
|
|
|
|
|
|
|
|
* tc-tilepro.c (O_tls_le): Define operator.
|
|
|
|
|
(O_tls_le_lo16): Ditto.
|
|
|
|
|
(O_tls_le_hi16): Ditto.
|
|
|
|
|
(O_tls_le_ha16): Ditto.
|
|
|
|
|
(O_tls_gd_call): Ditto.
|
|
|
|
|
(O_tls_gd_add): Ditto.
|
|
|
|
|
(O_tls_ie_load): Ditto.
|
|
|
|
|
(md_begin): Delete old operators; handle new operators.
|
|
|
|
|
(emit_tilepro_instruction): Ditto.
|
|
|
|
|
(md_apply_fix): Ditto.
|
|
|
|
|
* tc-tilegx.c (O_hw1_got): Delete operator.
|
|
|
|
|
(O_hw2_got): Ditto.
|
|
|
|
|
(O_hw3_got): Ditto.
|
|
|
|
|
(O_hw2_last_got): Ditto.
|
|
|
|
|
(O_hw1_tls_gd): Ditto.
|
|
|
|
|
(O_hw2_tls_gd): Ditto.
|
|
|
|
|
(O_hw3_tls_gd): Ditto.
|
|
|
|
|
(O_hw2_last_tls_gd): Ditto.
|
|
|
|
|
(O_hw1_tls_ie): Ditto.
|
|
|
|
|
(O_hw2_tls_ie): Ditto.
|
|
|
|
|
(O_hw3_tls_ie): Ditto.
|
|
|
|
|
(O_hw2_last_tls_ie): Ditto.
|
|
|
|
|
(O_hw0_tls_le): Define operator.
|
|
|
|
|
(O_hw0_last_tls_le): Ditto.
|
|
|
|
|
(O_hw1_last_tls_le): Ditto.
|
|
|
|
|
(O_tls_gd_call): Ditto.
|
|
|
|
|
(O_tls_gd_add): Ditto.
|
|
|
|
|
(O_tls_ie_load): Ditto.
|
|
|
|
|
(O_tls_add): Ditto.
|
|
|
|
|
(md_begin): Delete old operators; handle new operators.
|
|
|
|
|
(emit_tilegx_instruction): Ditto.
|
|
|
|
|
(md_apply_fix): Ditto.
|
|
|
|
|
* doc/c-tilegx.texi: Delete old operators; document new operators.
|
|
|
|
|
* doc/c-tilepro.texi: Ditto.
|
|
|
|
|
|
2012-02-26 02:57:55 +08:00
|
|
|
|
2012-02-25 Walter Lee <walt@tilera.com>
|
|
|
|
|
|
2012-02-26 04:07:08 +08:00
|
|
|
|
* tc-tilepro.c (apply_special_operator): delete cases for
|
|
|
|
|
got and tls operators.
|
|
|
|
|
(md_apply_fix): Ditto.
|
2012-02-26 03:51:34 +08:00
|
|
|
|
* tc-tilegx.c (md_begin): Set architecture and machine.
|
|
|
|
|
(tilegx_target_format): Handle big endian.
|
|
|
|
|
(OPTION_EB): Define.
|
|
|
|
|
(OPTION_EL): Define.
|
|
|
|
|
(md_longopts): Add entries for "EB" and "EL".
|
|
|
|
|
(md_parse_option): Handle OPTION_EB and OPTION_EL.
|
|
|
|
|
(md_show_usage): Add -EB and -EL.
|
|
|
|
|
(md_number_to_chars): New.
|
2012-02-26 04:07:08 +08:00
|
|
|
|
(apply_special_operator): delete cases for got and tls
|
|
|
|
|
operators.
|
|
|
|
|
(md_apply_fix): Ditto.
|
2012-02-26 03:51:34 +08:00
|
|
|
|
* tc-tilegx.h (TARGET_BYTES_BIG_ENDIAN): Guard definition with
|
|
|
|
|
ifndef.
|
|
|
|
|
(md_number_to_chars): Delete.
|
|
|
|
|
* configure.tgt (tilegx*be): Handle.
|
|
|
|
|
* doc/as.texinfo [TILE-Gx]: Document -EB and -EL.
|
|
|
|
|
* doc/c-tilegx.texi: Ditto.
|
2012-02-26 02:57:55 +08:00
|
|
|
|
|
2012-02-22 02:09:48 +08:00
|
|
|
|
2012-02-21 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.c (check_hle): Use HLEPrefixNone, HLEPrefixLock,
|
|
|
|
|
HLEPrefixAny and HLEPrefixRelease.
|
|
|
|
|
|
2012-02-22 00:55:31 +08:00
|
|
|
|
2012-02-21 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
|
|
|
|
|
|
|
|
|
* gas/config/tc-arm.h (DOUBLESLASH_LINE_COMMENTS): Define.
|
|
|
|
|
|
2012-02-21 21:39:37 +08:00
|
|
|
|
2012-02-21 Iain Sandoe <idsandoe@googlemail.com>
|
|
|
|
|
|
|
|
|
|
* write.c (write_object_file): Add md_pre_output_hook.
|
|
|
|
|
* config/obj-macho.c (obj_mach_o_check_before_writing): New.
|
|
|
|
|
(obj_mach_o_pre_output_hook): New.
|
|
|
|
|
* config/obj-macho.h (md_pre_output_hook): Define.
|
|
|
|
|
(obj_mach_o_pre_output_hook): Declare.
|
|
|
|
|
|
2012-02-21 17:13:02 +08:00
|
|
|
|
2012-02-21 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.h (OBJ_MACH_O): New section.
|
|
|
|
|
(TC_FORCE_RELOCATION): Use obj_mach_o_force_reloc.
|
|
|
|
|
(TC_FORCE_RELOCATION_SUB_SAME): New
|
|
|
|
|
(TC_FORCE_RELOCATION_SUB_LOCAL): New.
|
|
|
|
|
(TC_VALIDATE_FIX_SUB): New.
|
|
|
|
|
* frags.h (struct frag): OBJ_FRAG_TYPE, new field.
|
|
|
|
|
* symbols.c (colon): obj_frob_colon: New hook.
|
|
|
|
|
* write.c (write_object_file): md_pre_relax_hook, new
|
|
|
|
|
hook.
|
|
|
|
|
* config/obj-macho.c (obj_mach_o_frob_colon): New.
|
|
|
|
|
(obj_mach_o_frob_label): Record sub-section labels.
|
|
|
|
|
(obj_mach_o_frob_symbol): Rename from obj_macho_frob_symbol.
|
|
|
|
|
(obj_mach_o_set_subsections): New.
|
|
|
|
|
(obj_mach_o_pre_relax_hook): New.
|
|
|
|
|
(obj_mach_o_in_different_subsection): New.
|
|
|
|
|
(obj_mach_o_force_reloc_sub_same): New.
|
|
|
|
|
(obj_mach_o_force_reloc_sub_local): New.
|
|
|
|
|
(obj_mach_o_force_reloc): New.
|
|
|
|
|
* config/obj-macho.h (OBJ_SYMFIELD_TYPE): New.
|
|
|
|
|
(obj_frob_colon): New Define.
|
|
|
|
|
(obj_mach_o_frob_label): Renamed.
|
|
|
|
|
(obj_mach_o_frob_symbol): Renamed.
|
|
|
|
|
(OBJ_FRAG_TYPE): New.
|
|
|
|
|
(obj_mach_o_in_different_subsection, obj_mach_o_force_reloc,
|
|
|
|
|
obj_mach_o_force_reloc_sub_same,
|
|
|
|
|
obj_mach_o_force_reloc_sub_local): New declarations.
|
|
|
|
|
|
2012-02-21 04:11:32 +08:00
|
|
|
|
2012-02-20 Iain Sandoe <idsandoe@googlemail.com>
|
|
|
|
|
|
|
|
|
|
* config/obj-macho.c (obj_mach_o_is_frame_section): New.
|
|
|
|
|
(obj_mach_o_allow_local_subtract): New.
|
|
|
|
|
* config/obj-macho.h (md_allow_local_subtract): Define.
|
|
|
|
|
(obj_mach_o_allow_local_subtract): Declare.
|
|
|
|
|
|
2012-02-21 03:44:40 +08:00
|
|
|
|
2012-02-20 Iain Sandoe <idsandoe@googlemail.com>
|
|
|
|
|
|
|
|
|
|
* config/obj-macho.c (obj_mach_o_make_or_get_sect): In the absence of
|
|
|
|
|
canonical information, try to determine CODE and DEBUG section flags
|
|
|
|
|
from the mach-o section data.
|
|
|
|
|
|
2012-02-20 18:25:02 +08:00
|
|
|
|
2012-02-20 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cgen.c (gas_cgen_parse_operand): Do not set BSF_RELC flag on
|
|
|
|
|
local symbols.
|
|
|
|
|
|
2012-02-12 23:47:17 +08:00
|
|
|
|
2012-02-12 Iain Sandoe <idsandoe@googlemail.com>
|
|
|
|
|
|
|
|
|
|
* config/obj-macho.c (obj_mach_o_indirect_symbol): Force promotion of
|
|
|
|
|
any local symbol used as an indirect.
|
|
|
|
|
|
2012-02-10 21:12:55 +08:00
|
|
|
|
2012-02-10 Iain Sandoe <idsandoe@googlemail.com>
|
|
|
|
|
|
|
|
|
|
* config/obj-macho.c (obj_mach_o_make_or_get_sect): Always fill in
|
|
|
|
|
stub size when provided. (obj_mach_o_section): Flag that stub-size
|
|
|
|
|
has been provided.
|
|
|
|
|
|
Implement Intel Transactional Synchronization Extensions
gas/
2012-02-08 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (HLE_PREFIX): New.
(check_hle): Likewise.
(_i386_insn): Add have_hle.
(cpu_arch): Add .hle and .rtm.
(md_assemble): Call check_hle if i.have_hle isn't zero.
(parse_insn): Set i.have_hle to 1 for HLE prefix.
(output_jump): Support up to 2 byte opcode.
* doc/c-i386.texi: Document hle/.hle and rtm/.rtm.
gas/testsuite/
2012-02-08 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/hle-intel.d: New.
* gas/i386/hle.d: Likewise.
* gas/i386/hle.s: Likewise.
* gas/i386/hlebad.l: Likewise.
* gas/i386/hlebad.s: Likewise.
* gas/i386/rtm-intel.d: Likewise.
* gas/i386/rtm.d: Likewise.
* gas/i386/rtm.s: Likewise.
* gas/i386/x86-64-hle-intel.d: Likewise.
* gas/i386/x86-64-hle.d: Likewise.
* gas/i386/x86-64-hle.s: Likewise.
* gas/i386/x86-64-hlebad.l: Likewise.
* gas/i386/x86-64-hlebad.s: Likewise.
* gas/i386/x86-64-rtm-intel.d: Likewise.
* gas/i386/x86-64-rtm.d: Likewise.
* gas/i386/x86-64-rtm.s: Likewise.
* gas/i386/i386.exp: Run hle, hle-intel, hlebad x86-64-hle, rtm,
rtm-intel, x86-64-hle-intel, x86-64-hlebad, x86-64-rtm and
x86-64-rtm-intel.
include/opcode/
2012-02-08 H.J. Lu <hongjiu.lu@intel.com>
* i386.h (XACQUIRE_PREFIX_OPCODE): New.
(XRELEASE_PREFIX_OPCODE): Likewise.
opcodes/
2012-02-08 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (HLE_Fixup1): New.
(HLE_Fixup2): Likewise.
(HLE_Fixup3): Likewise.
(Ebh1): Likewise.
(Evh1): Likewise.
(Ebh2): Likewise.
(Evh2): Likewise.
(Ebh3): Likewise.
(Evh3): Likewise.
(MOD_C6_REG_7): Likewise.
(MOD_C7_REG_7): Likewise.
(RM_C6_REG_7): Likewise.
(RM_C7_REG_7): Likewise.
(XACQUIRE_PREFIX): Likewise.
(XRELEASE_PREFIX): Likewise.
(dis386): Use Ebh1/Evh1 on add, adc, and, btc, btr, bts,
cmpxchg, dec, inc, neg, not, or, sbb, sub, xor and xadd. Use
Ebh2/Evh2 on xchg. Use Ebh3/Evh3 on mov.
(reg_table): Use Ebh1/Evh1 on add, adc, and, dec, inc, neg,
not, or, sbb, sub and xor. Use Ebh3/Evh3 on mov. Use
MOD_C6_REG_7 and MOD_C7_REG_7.
(mod_table): Add MOD_C6_REG_7 and MOD_C7_REG_7.
(rm_table): Add RM_C6_REG_7 and RM_C7_REG_7. Add xend and
xtest.
(prefix_name): Handle XACQUIRE_PREFIX and XRELEASE_PREFIX.
(CMPXCHG8B_Fixup): Handle HLE prefix on cmpxchg8b.
* i386-gen.c (cpu_flag_init): Add CPU_HLE_FLAGS and
CPU_RTM_FLAGS.
(cpu_flags): Add CpuHLE and CpuRTM.
(opcode_modifiers): Add HLEPrefixOk.
* i386-opc.h (CpuHLE): New.
(CpuRTM): Likewise.
(HLEPrefixOk): Likewise.
(i386_cpu_flags): Add cpuhle and cpurtm.
(i386_opcode_modifier): Add hleprefixok.
* i386-opc.tbl: Add HLEPrefixOk=3 to mov. Add HLEPrefixOk to
add, adc, and, btc, btr, bts, cmpxchg, dec, inc, neg, not, or,
sbb, sub, xor and xadd. Add HLEPrefixOk=2 to xchg with memory
operand. Add xacquire, xrelease, xabort, xbegin, xend and
xtest.
* i386-init.h: Regenerated.
* i386-tbl.h: Likewise.
2012-02-09 02:20:41 +08:00
|
|
|
|
2012-02-08 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.c (HLE_PREFIX): New.
|
|
|
|
|
(check_hle): Likewise.
|
|
|
|
|
(_i386_insn): Add have_hle.
|
|
|
|
|
(cpu_arch): Add .hle and .rtm.
|
|
|
|
|
(md_assemble): Call check_hle if i.have_hle isn't zero.
|
|
|
|
|
(parse_insn): Set i.have_hle to 1 for HLE prefix.
|
|
|
|
|
(output_jump): Support up to 2 byte opcode.
|
|
|
|
|
|
|
|
|
|
* doc/c-i386.texi: Document hle/.hle and rtm/.rtm.
|
|
|
|
|
|
2012-02-02 19:55:43 +08:00
|
|
|
|
2012-02-02 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* config/obj-macho.c (obj_mach_o_zerofill): Silent
|
|
|
|
|
uninitialized variable warning.
|
|
|
|
|
|
2012-02-02 17:26:04 +08:00
|
|
|
|
2012-02-02 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR gas/13224
|
|
|
|
|
* config/obj-elf.c (obj_elf_parse_section_letters): Rename 'clone'
|
|
|
|
|
to 'is_clone' to avoid shadowing a gloabl.
|
|
|
|
|
(obj_elf_section): Likewise.
|
|
|
|
|
|
2012-01-31 23:01:56 +08:00
|
|
|
|
2012-01-31 Paul Brook <paul@codesourcery.com>
|
2012-02-02 17:26:04 +08:00
|
|
|
|
|
2012-01-31 23:01:56 +08:00
|
|
|
|
* doc/c-tic6x.c: Fix typo.
|
|
|
|
|
|
2012-01-26 22:56:49 +08:00
|
|
|
|
2012-01-26 Alexey Makhalov <makhaloff@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR gas/13624
|
|
|
|
|
* app.c (app_push): Set 'add_newlines' to zero after saving.
|
|
|
|
|
|
2012-01-25 09:40:11 +08:00
|
|
|
|
2012-01-24 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/rl78-parse.y (NOT1): Add.
|
|
|
|
|
|
2012-01-24 05:42:04 +08:00
|
|
|
|
2012-01-23 Roland McGrath <mcgrathr@google.com>
|
|
|
|
|
|
|
|
|
|
* configure.tgt (i386-*-nacl*): Match it.
|
|
|
|
|
* config/te-nacl.h: New file.
|
|
|
|
|
* config/tc-i386.h [TE_NACL] (ELF_TARGET_FORMAT): Define for this case.
|
|
|
|
|
* config/tc-i386.c [TE_NACL] (i386_comment_chars, PREFIX_SEPARATOR):
|
|
|
|
|
Use TE_GNU et al case for TE_NACL too.
|
|
|
|
|
|
2012-01-21 04:53:50 +08:00
|
|
|
|
2012-01-20 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.c (_i386_insn): Replace disp32_encoding with
|
|
|
|
|
disp_encoding.
|
|
|
|
|
(md_assemble): Updated.
|
|
|
|
|
(output_branch): Likewise.
|
|
|
|
|
(parse_insn): Support .d8 suffix.
|
|
|
|
|
(build_modrm_byte): Fake zero displacement for .d8 and .d32
|
|
|
|
|
suffixes.
|
|
|
|
|
|
|
|
|
|
* doc/c-i386.texi: Document .d8 suffix.
|
|
|
|
|
|
2012-01-17 08:20:30 +08:00
|
|
|
|
2012-01-17 Andrew Burgess <aburgess@broadcom.com>
|
|
|
|
|
|
|
|
|
|
* write.c (fix_new_internal): Don't mark used parameter as unused.
|
|
|
|
|
|
2012-01-17 08:07:04 +08:00
|
|
|
|
2012-01-17 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* as.c (parse_args): Update copyright message year.
|
|
|
|
|
|
2012-01-14 06:19:32 +08:00
|
|
|
|
2012-01-13 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.c (cpu_arch): Add ".vmfunc".
|
|
|
|
|
|
|
|
|
|
* doc/c-i386.texi: Document vmfunc.
|
|
|
|
|
|
2012-01-13 23:19:13 +08:00
|
|
|
|
2012-01-13 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* config/obj-macho.c (obj_mach_o_reorder_section_relocs): New.
|
|
|
|
|
* config/obj-macho.h (SET_SECTION_RELOCS): Define.
|
|
|
|
|
(obj_mach_o_reorder_section_relocs): Declare.
|
|
|
|
|
|
2012-01-13 20:59:30 +08:00
|
|
|
|
2012-01-13 Iain Sandoe <idsandoe@googlemail.com>
|
|
|
|
|
|
|
|
|
|
* config/obj-macho.c (obj_mach_o_set_indirect_symbols): Handle
|
|
|
|
|
absolute indirect symbols.
|
|
|
|
|
|
2012-01-13 19:55:02 +08:00
|
|
|
|
2012-01-13 Iain Sandoe <idsandoe@googlemail.com>
|
|
|
|
|
|
|
|
|
|
* config/obj-macho.c (obj_mach_o_set_vma_data): New type.
|
|
|
|
|
(obj_mach_o_set_section_vma): New.
|
|
|
|
|
(obj_mach_o_post_relax_hook): New.
|
|
|
|
|
* config/obj-macho.h (md_post_relax_hook): Define.
|
|
|
|
|
(obj_mach_o_post_relax_hook): Declare.
|
|
|
|
|
|
2012-01-12 22:03:12 +08:00
|
|
|
|
2012-01-12 Iain Sandoe <idsandoe@googlemail.com>
|
|
|
|
|
|
|
|
|
|
* config/obj-macho.c (obj_mach_o_set_symbol_qualifier): Switch off
|
|
|
|
|
lazy when the symbol is private_extern.
|
|
|
|
|
(obj_mach_o_indirect_sym): New type.
|
|
|
|
|
(obj_mach_o_indirect_symbol): New.
|
|
|
|
|
(mach_o_pseudo_table): Use obj_mach_o_indirect_symbol.
|
|
|
|
|
(obj_macho_frob_label): Adjust to avoid adding bsyms for locals.
|
|
|
|
|
(obj_macho_frob_label): Likewise. Adjust external and comm
|
|
|
|
|
symbol tests.
|
|
|
|
|
(obj_mach_o_set_indirect_symbols): New.
|
|
|
|
|
(obj_mach_o_frob_file_after_relocs): New.
|
|
|
|
|
*config/obj-macho.h (obj_frob_file_after_relocs): Define.
|
|
|
|
|
(obj_mach_o_frob_file_after_relocs): Declare.
|
|
|
|
|
|
2012-01-12 16:53:34 +08:00
|
|
|
|
2012-01-12 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
PR gas/13591
|
|
|
|
|
* config/obj-coff.h (sy_obj): Rename macro to avoid a name conflict.
|
|
|
|
|
|
2012-01-10 Tristan Gingold <gingold@adacore.com>
* struc-symbol.h (struct symbol_flags): New struct, created from...
(struct symbol): ... this one. Add sy_flags field, remove flag fields.
(struct local_symbol): Replace lsy_marker field by lsy_flags.
Adjust comment.
(local_symbol_resolved_p): Adjust.
(local_symbol_mark_resolved): Likewise.
* symbols.c (LOCAL_SYMBOL_CHECK): Adjust.
(local_symbol_make, local_symbol_convert, colon)
(symbol_clone_if_forward_ref, verify_symbol_chain)
(resolve_symbol_value, snapshot_symbol, S_GET_VALUE)
(S_IS_WEAKREFR, S_IS_WEAKREFD, S_IS_VOLATILE, S_IS_FORWARD_REF)
(S_SET_WEAKREFR, S_CLEAR_WEAKREFR, S_SET_WEAKREFD)
(S_CLEAR_WEAKREFD, S_SET_VOLATILE, S_CLEAR_VOLATILE)
(S_SET_FORWARD_REF, symbol_same_p, symbol_mark_used)
(symbol_clear_used, symbol_used_p, symbol_mark_used_in_reloc)
(symbol_clear_used_in_reloc, symbol_used_in_reloc_p)
(symbol_mark_mri_common, symbol_clear_mri_common)
(symbol_mri_common_p, symbol_mark_written, symbol_clear_written)
(symbol_written_p, symbol_mark_resolved, symbol_resolved_p)
(symbol_equated_reloc_p, dot_symbol_init)
(print_symbol_value_1): Adjust.
2012-01-10 19:48:26 +08:00
|
|
|
|
2012-01-10 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* struc-symbol.h (struct symbol_flags): New struct, created from...
|
|
|
|
|
(struct symbol): ... this one. Add sy_flags field, remove flag fields.
|
|
|
|
|
(struct local_symbol): Replace lsy_marker field by lsy_flags.
|
|
|
|
|
Adjust comment.
|
|
|
|
|
(local_symbol_resolved_p): Adjust.
|
|
|
|
|
(local_symbol_mark_resolved): Likewise.
|
|
|
|
|
* symbols.c (LOCAL_SYMBOL_CHECK): Adjust.
|
|
|
|
|
(local_symbol_make, local_symbol_convert, colon)
|
|
|
|
|
(symbol_clone_if_forward_ref, verify_symbol_chain)
|
|
|
|
|
(resolve_symbol_value, snapshot_symbol, S_GET_VALUE)
|
|
|
|
|
(S_IS_WEAKREFR, S_IS_WEAKREFD, S_IS_VOLATILE, S_IS_FORWARD_REF)
|
|
|
|
|
(S_SET_WEAKREFR, S_CLEAR_WEAKREFR, S_SET_WEAKREFD)
|
|
|
|
|
(S_CLEAR_WEAKREFD, S_SET_VOLATILE, S_CLEAR_VOLATILE)
|
|
|
|
|
(S_SET_FORWARD_REF, symbol_same_p, symbol_mark_used)
|
|
|
|
|
(symbol_clear_used, symbol_used_p, symbol_mark_used_in_reloc)
|
|
|
|
|
(symbol_clear_used_in_reloc, symbol_used_in_reloc_p)
|
|
|
|
|
(symbol_mark_mri_common, symbol_clear_mri_common)
|
|
|
|
|
(symbol_mri_common_p, symbol_mark_written, symbol_clear_written)
|
|
|
|
|
(symbol_written_p, symbol_mark_resolved, symbol_resolved_p)
|
|
|
|
|
(symbol_equated_reloc_p, dot_symbol_init)
|
|
|
|
|
(print_symbol_value_1): Adjust.
|
|
|
|
|
|
2012-01-09 18:47:50 +08:00
|
|
|
|
2012-01-09 Iain Sandoe <idsandoe@googlemail.com>
|
|
|
|
|
|
|
|
|
|
* config/obj-macho.c (obj_mach_o_weak): Remove.
|
|
|
|
|
(obj_mach_o_common_parse): Set symbol qualifiers.
|
|
|
|
|
(LAZY, REFE): New macros.
|
|
|
|
|
(obj_mach_o_symbol_type): New enum.
|
|
|
|
|
(obj_mach_o_set_symbol_qualifier): New.
|
|
|
|
|
(obj_mach_o_sym_qual): New.
|
|
|
|
|
(mach_o_pseudo_table): Add symbol qualifiers, set indirect_symbol to
|
|
|
|
|
a dummy function.
|
|
|
|
|
(obj_mach_o_type_for_symbol): New.
|
|
|
|
|
(obj_macho_frob_label): New.
|
|
|
|
|
(obj_macho_frob_symbol): New.
|
|
|
|
|
* config/obj-macho.h (S_SET_ALIGN): Amend temorary var name.
|
|
|
|
|
(obj_frob_label, obj_macho_frob_label): Declare.
|
|
|
|
|
(obj_frob_symbol, obj_macho_frob_symbol): Declare.
|
|
|
|
|
|
2012-01-08 20:33:54 +08:00
|
|
|
|
2012-01-08 Richard Sandiford <rdsandiford@googlemail.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-mips.c (s_tls_rel_directive): Call mips_clear_insn_labels.
|
|
|
|
|
|
2012-01-08 20:11:42 +08:00
|
|
|
|
2012-01-08 Andrew Pinski <andrew.pinski@caviumnetworks.com>
|
|
|
|
|
Richard Sandiford <rdsandiford@googlemail.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-mips.c (mips_move_labels): Take the list of labels and
|
|
|
|
|
textness as parameters.
|
|
|
|
|
(mips_move_text_labels): New function.
|
|
|
|
|
(append_insn): Use it instead of mips_move_labels.
|
|
|
|
|
(mips_emit_delays, start_noreorder): Likewise.
|
|
|
|
|
(mips_align): Take the labels rather than just one label.
|
|
|
|
|
Move all labels to after the .align.
|
|
|
|
|
(s_align): Change the last argument to mips_align.
|
|
|
|
|
(s_cons): Likewise.
|
|
|
|
|
(s_float_cons): Likewise.
|
|
|
|
|
(s_gpword): Likewise.
|
|
|
|
|
(s_gpdword): Likewise.
|
|
|
|
|
|
2012-01-07 00:23:39 +08:00
|
|
|
|
2012-01-06 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* config/tc-i386.c: Update copyright year.
|
|
|
|
|
(lex_got): Also defined for Mach-O.
|
|
|
|
|
Add a guard for non-ELF configuration.
|
|
|
|
|
(md_longopts): Also handle -64 for Mach-O.
|
|
|
|
|
(md_parse_option): Likewise.
|
|
|
|
|
(i386_target_format): Adjust for x86_64-darwin.
|
|
|
|
|
|
2012-01-04 18:59:54 +08:00
|
|
|
|
2012-01-04 Iain Sandoe <idsandoe@googlemail.com>
|
|
|
|
|
|
|
|
|
|
* config/obj-macho.c (obj_mach_o_segT_from_bfd_name): Tidy definition.
|
|
|
|
|
(obj_mach_o_get_section_names): New (split from obj_mach_o_section).
|
|
|
|
|
(obj_mach_o_make_or_get_sect): Likewise.
|
|
|
|
|
(obj_mach_o_section): Split out the functionality shared with zerofill.
|
|
|
|
|
(obj_mach_o_zerofill): New.
|
|
|
|
|
(obj_mach_o_common_parse): Ensure whitespace is skipped.
|
|
|
|
|
(mach_o_pseudo_table): Add .zerofill.
|
|
|
|
|
|
2012-01-03 21:18:48 +08:00
|
|
|
|
2012-01-03 Iain Sandoe <idsandoe@googlemail.com>
|
|
|
|
|
|
|
|
|
|
* config/obj-macho.c (obj_macho_process_stab): New.
|
|
|
|
|
* config/obj-macho.h (OBJ_PROCESS_STAB): Define.
|
|
|
|
|
(obj_macho_process_stab): Declare.
|
|
|
|
|
|
2012-01-05 18:09:39 +08:00
|
|
|
|
For older changes see ChangeLog-2011
|
2002-01-07 20:12:47 +08:00
|
|
|
|
|
|
|
|
|
Local Variables:
|
|
|
|
|
mode: change-log
|
|
|
|
|
left-margin: 8
|
|
|
|
|
fill-column: 74
|
|
|
|
|
version-control: never
|
|
|
|
|
End:
|