aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.7/gcc/ChangeLog.x32
diff options
context:
space:
mode:
authorPavel Chupin <pavel.v.chupin@intel.com>2012-11-27 14:09:50 +0400
committerPavel Chupin <pavel.v.chupin@intel.com>2013-04-18 16:50:12 +0400
commit9e1f9b3eacb51a67e675cd1195c472215fb16373 (patch)
treeaf3f97ee1874e13a5fe5ba61058aba045bbad279 /gcc-4.7/gcc/ChangeLog.x32
parent5d65342898686feb3faceb3beb10529501d67b48 (diff)
downloadtoolchain_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.x32343
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.