diff options
author | Pavel Chupin <pavel.v.chupin@intel.com> | 2012-11-27 14:09:50 +0400 |
---|---|---|
committer | Pavel Chupin <pavel.v.chupin@intel.com> | 2013-04-18 16:50:12 +0400 |
commit | 9e1f9b3eacb51a67e675cd1195c472215fb16373 (patch) | |
tree | af3f97ee1874e13a5fe5ba61058aba045bbad279 /gcc-4.7/gcc/ChangeLog.x32 | |
parent | 5d65342898686feb3faceb3beb10529501d67b48 (diff) | |
download | toolchain_gcc-9e1f9b3eacb51a67e675cd1195c472215fb16373.tar.gz toolchain_gcc-9e1f9b3eacb51a67e675cd1195c472215fb16373.tar.bz2 toolchain_gcc-9e1f9b3eacb51a67e675cd1195c472215fb16373.zip |
[4.7] x32: Backport x32 support into 4.7
This patch contains all gcc changes required to build x32 compiler.
They are backported from 4.8/trunk.
Change-Id: I923f639c1f0cee5812b0f555a39bab0bd0723865
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
Diffstat (limited to 'gcc-4.7/gcc/ChangeLog.x32')
-rw-r--r-- | gcc-4.7/gcc/ChangeLog.x32 | 343 |
1 files changed, 343 insertions, 0 deletions
diff --git a/gcc-4.7/gcc/ChangeLog.x32 b/gcc-4.7/gcc/ChangeLog.x32 new file mode 100644 index 000000000..6b8c31a69 --- /dev/null +++ b/gcc-4.7/gcc/ChangeLog.x32 @@ -0,0 +1,343 @@ +2012-08-24 H.J. Lu <hongjiu.lu@intel.com> + + PR debug/52857 + * dwarf2out.c (mem_loc_descriptor): Allow arg_pointer_rtx and + frame_pointer_rtx for based_loc_descr. + +2012-06-29 H.J. Lu <hongjiu.lu@intel.com> + + PR target/53539 + * config/i386/gnu-user64.h (WCHAR_TYPE): Use "int" only for + TARGET_LP64. + +2012-06-05 H.J. Lu <hongjiu.lu@intel.com> + + PR target/53575 + * config.gcc: Select x32 run-time library if --with-abi={x32|mx32} + is used for x86_64-*-*. + +2012-05-16 H.J. Lu <hongjiu.lu@intel.com> + + * configure: Regenerated. + +2012-04-25 H.J. Lu <hongjiu.lu@intel.com> + + PR debug/52857 + * dwarf2out.c (dbx_reg_number): Assert return value != + INVALID_REGNUM. + +2012-04-11 H.J. Lu <hongjiu.lu@intel.com> + + * config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to + 0x60000000 if __x86_64 is defined and __LP64__ isn't defined. + +2012-04-11 H.J. Lu <hongjiu.lu@intel.com> + + PR rtl-optimization/52876 + * emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value. + Don't call mark_reg_pointer for incompatible pointer sign + extension. + + * reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value + directly. + +2012-04-11 H.J. Lu <hongjiu.lu@intel.com> + + * config/i386/i386.c (ix86_option_override_internal): Check + SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS + after TARGET_64BIT is updated. + +2012-04-09 Uros Bizjak <ubizjak@gmail.com> + + PR target/52883 + * config/i386/predicates.md (x86_64_zext_general_operand): Prevent + VOIDmode immediate operands. + * config/i386/constraints.md (Wz): New constraint. + * config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z. + +2012-04-05 Uros Bizjak <ubizjak@gmail.com> + + PR target/52882 + * config/i386/i386.c (ix86_decompose_address): Allow VOIDmode + CONST_INT operands, zero-extended with AND. + +2012-04-02 H.J. Lu <hongjiu.lu@intel.com> + + * config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h + for --with-abi={x32|mx32} or --with-multilib-list=mx32. + (supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*. + + * config/i386/biarchx32.h: New. + +2012-03-31 H.J. Lu <hongjiu.lu@intel.com> + + PR bootstrap/52784 + * config/i386/i386.c (ix86_option_override_internal): Don't + check TARGET_64BIT if TARGET_64BIT_DEFAULT is false. + +2012-03-28 H.J. Lu <hongjiu.lu@intel.com> + + * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add + OPTION_MASK_ABI_64. + + * config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2. + (SPEC_X32): Likewise. + (MULTILIB_DEFAULTS): Likewise. + + * config/i386/i386.c (isa_opts): Remove -m64. + (ix86_target_string): Properly handle -m32/-m64/-mx32. + (ix86_option_override_internal): Properly + set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as + handle -m32, -m64 and -mx32. + + * config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32 + with OPTION_ABI_X32. Moved after TARGET_LP64. + (TARGET_LP64): Changed to OPTION_ABI_64. + + * config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64. + (mx32): Replace ISA_X32 with ABI_X32. + +2012-03-27 H.J. Lu <hongjiu.lu@intel.com> + + * config/arm/arm.opt (mapcs): Remove MaskExists. + * config/cris/linux.opt (mno-gotplt): Likewise. + * config/i386/i386.opt (mhard-float): Likewise. + (msse4): Likewise. + (mno-sse4): Likewise. + * config/m68k/m68k.opt (mhard-float): Likewise. + * config/mep/mep.op (mcop32): Likewise. + * config/pa/pa-hpux.opt (msio): Likewise. + * config/pa/pa64-hpux.opt (mgnu-ld): Likewise. + * config/picochip/picochip.opt (mlittle): Likewise. + * config/sh/sh.opt (mrenesas): Likewise. + * config/sparc/long-double-switch.opt (mlong-double-128): Likewise. + * config/sparc/sparc.opt (mhard-float): Likewise. + * config/v850/v850.opt (mv850es): Likewise. + * config/vax/vax.opt (mg-float): Likewise. + +2012-03-27 H.J. Lu <hongjiu.lu@intel.com> + + * opth-gen.awk: Allocated a bit for Mask and InverseMask if it + hasn't been allocated. Define a target macro for Mask and + InverseMask if it hasn't been defined. Remove MaskExists + handling. + + * doc/options.texi: Remove MaskExists. + +2012-03-14 H.J. Lu <hongjiu.lu@intel.com> + + PR target/50797 + * config/i386/i386-opts.h (pmode): New. + + * config/i386/i386.c (ix86_option_override_internal): Properly + check and set ix86_pmode. + + * config/i386/i386.h (Pmode): Check ix86_pmode instead of + TARGET_64BIT. + + * config/i386/i386.opt (maddress-mode=): New. + + * doc/invoke.texi: Document -maddress-mode=short|long for x86. + +2012-03-20 Jakub Jelinek <jakub@redhat.com> + + * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>: + If operand isn't UNSPEC, return 0. + +2012-03-19 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.c (get_thread_pointer): Add tp_mode argument. + Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode. + (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate + DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT. + (ix86_decompose_address): Allow zero extended UNSPEC_TP references. + +2012-03-13 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.c (ix86_decompose_address): Handle subregs of + AND zero extended address correctly. + +2012-03-13 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/predicates.md (tls_symbolic_operand): Declare as + special predicate. + (tls_modbase_operand): Ditto. + * config/i386/i386.md: Remove mode from tls_symbolic_operand and + tls_modbase_operand predicates. + +2012-03-13 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg) + addresses only when %reg is not in word mode. + +2012-03-12 H.J. Lu <hongjiu.lu@intel.com> + + * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P + on tls_symbolic_operand. + (tls_global_dynamic_64_<mode>): Likewise. + +2012-03-12 H.J. Lu <hongjiu.lu@intel.com> + + * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New. + (ix86_gen_tls_local_dynamic_base_64): Likewise. + (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64 + and ix86_gen_tls_local_dynamic_base_64. + (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and + ix86_gen_tls_local_dynamic_base_64. + + * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ... + (*tls_global_dynamic_64_<mode>): This. + (tls_global_dynamic_64): Renamed to ... + (tls_global_dynamic_64_<mode>): This. + (*tls_local_dynamic_base_64): Renamed to ... + (*tls_local_dynamic_base_64_<mode>): This. + (tls_local_dynamic_base_64): Renamed to ... + (tls_local_dynamic_base_64_<mode>): This. + +2012-03-12 H.J. Lu <hongjiu.lu@intel.com> + + * config/i386/i386.c (ix86_option_override_internal): Properly + set ix86_gen_leave and ix86_gen_monitor. Check Pmode == DImode, + instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3, + ix86_gen_one_cmpl2, ix86_gen_andsp, + ix86_gen_allocate_stack_worker, ix86_gen_adjust_stack_and_probe + and ix86_gen_probe_stack_range. + + * config/i386/sse.md (sse3_monitor64): Renamed to ... + (sse3_monitor64_<mode>): This. + +2012-03-11 H.J. Lu <hongjiu.lu@intel.com> + + * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size + needed for loop. + (ix86_expand_setmem): Likewise. + +2012-03-11 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using + convert_to_mode. + +2012-03-11 H.J. Lu <hongjiu.lu@intel.com> + + * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if + ptr_mode == SImode. Replace DImode with Pmode or ptr_mode. + +2012-03-11 H.J. Lu <hongjiu.lu@intel.com> + + * config/i386/i386.c (x86_this_parameter): Replace DImode with + Pmode. + +2012-03-11 H.J. Lu <hongjiu.lu@intel.com> + + * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of + TARGET_64BIT. + +2012-03-11 H.J. Lu <hongjiu.lu@intel.com> + Uros Bizjak <ubizjak@gmail.com> + + * config/i386/predicates.md (call_insn_operand): Allow + constant_call_address_operand in Pmode only. + (sibcall_insn_operand): Ditto. + * config/i386/i386.md (*call): Use W mode iterator instead of P mode. + (*call_vzeroupper): Ditto. + (*sibcall): Ditto. + (*sibcall_vzeroupper): Ditto. + (*call_value): Ditto. + (*call_value_vzeroupper): Ditto. + (*sibcall_value): Ditto. + (*sibcall_value_vzeroupper): Ditto. + (*indirect_jump): Ditto. + (*tablejump_1): Ditto. + (indirect_jump): Convert memory address to word mode for TARGET_X32. + (tablejump): Ditto. + * config/i386/i386.c (ix86_expand_call): Convert indirect operands + to word mode. + +2012-03-08 H.J. Lu <hongjiu.lu@intel.com> + + * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode + with integer parameters in registers. + (gen_push): Push register in word_mode instead of Pmode. + (ix86_emit_save_regs): Likewise. + (ix86_emit_save_regs_using_mov): Save integer registers in + word_mode. + (gen_pop): Pop register in word_mode instead of Pmode. + (ix86_emit_restore_regs_using_pop): Likewise. + (ix86_expand_prologue): Replace Pmode with word_mode for push + immediate. Use ix86_gen_pro_epilogue_adjust_stack. Save and + restore RAX and R10 in word_mode. + (ix86_emit_restore_regs_using_mov): Restore integer registers + in word_mode. + (ix86_expand_split_stack_prologue): Save R10_REG and restore in + word_mode. + (ix86_split_to_parts): Use word_mode with PUT_MODE for push. + (ix86_split_long_move): Likewise. + + * config/i386/i386.md (W): New. + (*push<mode>2_prologue): Replace :P with :W. + (*pop<mode>1): Likewise. + (*pop<mode>1_epilogue): Likewise. + (push/pop peephole2): Use word_mode scratch registers. + +2012-03-09 Uros Bizjak <ubizjak@gmail.com> + + PR target/52530 + * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier. + (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback + to set code to 'q'. + * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec. + (*movdi_internal_rex64): Use %E operand modifier for lea. + (*movsi_internal): Ditto. + (*lea_1): Ditto. + (*lea<mode>_2): Ditto. + (*lea_{3,4,5,6}_zext): Ditto. + (*tls_global_dynamic_32_gnu): Ditto. + (*tls_global_dynamic_64): Ditto. + (*tls_dynamic_gnu2_lea_32): Ditto. + (*tls_dynamic_gnu2_lea_64): Ditto. + (pro_epilogue_adjust_stack_<mode>_add): Ditto. + +2012-03-08 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/predicates.md (indirect_branch_operand): Simplify. + +2012-03-07 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/predicates.md (x86_64_zext_general_operand): New. + * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1 + predicate to x86_64_zext_general_operand. Accept "Z" constraint. + +2012-03-07 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'. + (ix86_print_operand): Handle '^'. + * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands + using P mode iterator. Add %^ to asm template to conditionally emit + addr32 prefix. + (*rep_movdi_rex64): Ditto. + (*strsetdi_rex_1): Ditto. + (*rep_stosdi_rex64): Ditto. + (*strmov{si,hi,qi}_1): Add %^ to asm template to + conditionally emit addr32 prefix. + (*rep_mov{si,qi}): Ditto. + (*strset{si,hi,qi}): Ditto. + (*rep_stos{si,qi}): Ditto. + (*cmpstrnqi_nz_1): Ditto. + (*cmpstrnqi_1): Ditto. + (*strlenqi_1): Ditto. + +2012-03-07 H.J. Lu <hongjiu.lu@intel.com> + + * config/i386/i386.c (function_value_64): Return pointers in + word_mode instead of Pmode. + (ix86_promote_function_mode): Likewise. + +2012-03-04 H.J. Lu <hongjiu.lu@intel.com> + + * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode + instead of TARGET_64BIT. + +2012-03-04 H.J. Lu <hongjiu.lu@intel.com> + + * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set + adjust_stack_insn. |