X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=791dbe17f1081ae3ed76a686d87469f6a7679af0;hb=2511f7808247c921b32ff73dbf82527b77f92215;hp=bb92e10b867cf2c6392ac056d65da237d2de9119;hpb=000c9b40e327b35e8494165dd34a63d56260d628;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bb92e10b867..791dbe17f10 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,8 +1,587 @@ +2009-11-23 Jan Hubicka + + PR middle-end/42151 + * ipa-inline.c (inline_transform): Avoid ICE when transform is called + twice. + +2009-11-23 Jan Hubicka + + * ipa-cp.c (ipcp_compute_node_scale): Work around completely + wrong profile updates. + * predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block + having largest frequency. + * ira-live.c (ira_implicitly_set_insn_hard_regs): Silecne + used uninitalized warning. + * tree-optimize.c (execute_fixup_cfg): Rescale entry and exit block + frequencies. + +2009-11-23 Uros Bizjak + + * config/alpha/alpha.md (*cmp_sadd_sidi): Use gen_lowpart instead + of gen_rtx_REG to generate operand 5. + (*cmp_ssub_sidi): Ditto. + +2009-11-23 Richard Henderson + + * config/i386/i386.c (avx_vpermilp_parallel): Fix sign compare + mismatch. + +2009-11-23 Paul Brook + + * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Add special + case for noreturn functions. + (arm_compute_save_reg_mask): Remove special noreturn handling. + +2009-11-23 Richard Guenther + + * tree-dfa.c (get_ref_base_and_extent): Adjust maximum access + size for DECL bases. + +2009-11-22 Richard Henderson + + * i386.c (avx_vpermilp_parallel): New function. + * i386-protos.h: Declare it. + * predicates.md (avx_vpermilp_v8sf_operand, avx_vpermilp_v4df_operand, + avx_vpermilp_v4sf_operand, avx_vpermilp_v2df_operand): New. + * sse.md (AVXMODEFDP, AVXMODEFSP): New iterators. + (ssescalarnum, ssedoublesizemode): Add AVX modes. + (vpermilbits): Remove. + (avx_vpermil): Change insns to expanders. + (*avx_vpermil): New. Use vec_select. + +2009-11-22 Richard Earnshaw + + * opts.c (decode_options): Don't enable flag_schedule_insns + when optimizing for size. + * doc/invoke.texi: Document change. + +2009-11-22 Uros Bizjak + + PR target/42113 + * config/alpha/alpha.md (*cmp_sadd_si): Change mode + of scratch register to SImode. + (*cmp_sadd_sidi): Ditto. + (*cmp_ssub_si): Ditto. + (*cmp_ssub_sidi): Ditto. + +2009-11-21 Ian Lance Taylor + + * Makefile.in (HOST_LIBS): Move higher in file. + (LINKER, LINKER_FLAGS): If ENABLE_BUILD_WITH_CXX, but $(HOST_LIBS) + is not empty, set to $(CC) and $(CFLAGS). + +2009-11-22 Martin Jambor + + * tree-cfg.c (verify_types_in_gimple_reference): Error out on + V_C_E of an SSA_NAME or an invariant if lvalue is required. + (verify_gimple_call): Verify LHS also with with + verify_types_in_gimple_reference. + +2009-11-21 Martin Jambor + + PR middle-end/42025 + * tree-sra.c (access_precludes_ipa_sra_p): New function. + (splice_param_accesses): Check all accesses by calling + access_precludes_ipa_sra_p. + (sra_ipa_modify_expr): Rename argument erite to dont_convert and do + not convert types if it is true. + (sra_ipa_modify_assign): Convert types in case of mismatch. + +2009-11-21 Kaushik Phatak + + * config/sh/sh.md (cmpeqsi_t-1): Use logical_operand predicate + for operand 1. + +2009-11-21 Adam Nemet + + * config/mips/mips-protos.h (mulsidi3_gen_fn): New typedef. + (mips_mulsidi3_gen_fn): Declare new function. + * config/mips/mips.c (mips_mulsidi3_gen_fn): New function. + * config/mips/mips.md (mulsidi3): Change condition to use + mips_mulsidi3_gen_fn. Use mips_mulsidi3_gen_fn to generate the + insn. + (mulsidi3_64bit): Don't match for ISA_HAS_DMUL3. + (mulsidi3_64bit_dmul): New define_insn. + +2009-11-21 Ben Elliston + + * gengtype-lex.l: Enable noinput flex option. + (YY_NO_INPUT): Remove define. + +2009-11-21 Alexandre Oliva + + * tree-ssa.c (find_released_ssa_name): Handle NULL wi. + (insert_debug_temp_for_var_def): Handle degenerate PHI nodes. + (insert_debug_temps_for_defs): Handle PHI nodes. + * tree-ssa-dom.c (degenerate_phi_result): Don't crash on released + SSA names. + +2009-11-21 Alexandre Oliva + + * tree-ssa-pre.c (remove_dead_inserted_code): Don't release_defs + after remove_phi_node. + +2009-11-21 Alexandre Oliva + + PR tree-optimization/42078 + * gimple.h (gimple_replace_lhs): New declaration. + * gimple.c (gimple_replace_lhs): New function. + * tree-ssa-math-opts.c (execute_cse_reciprocals): Call it before + modifying the call. + +2009-11-20 Sebastian Pop + + * config/i386/sse.md (*xop_pmacsdql_mem): Don't call reg_mentioned_p. + (xop_mulv2div2di3_low): Same. + (*xop_pmacsdqh_mem): Same. + +2009-11-20 Richard Henderson + + * config/i386/i386-builtin-types.awk: New file. + * config/i386/i386-builtin-types.def: New file. + * config/i386/t-i386: Use them to build i386-builtin-types.inc. + * config/i386/i386.c: Include it. + (ix86_builtin_type_tab, ix86_get_builtin_type): New. + (ix86_builtin_func_type_tab, ix86_get_builtin_func_type): New. + (struct builtin_isa): Remove GTY marker. Replace tree type with + ix86_builtin_func_type; add set_and_not_built_p. + (def_builtin): Change type parameter to tcode; use + ix86_get_builtin_func_type; update all callers. Accept zero mask + to mean the builtin is unconditionally available. + (ix86_add_new_builtins): Use set_and_not_built_p instead of type + being set to NULL. + (enum ix86_special_builtin_type, enum ix86_builtin_type): Remove. + Update some users to rationalized enumeration codes from new include. + (enum multi_arg_type): Remove. Replace all enumeration values + with defines to new ix86_builtin_func_type. + (ix86_init_mmx_sse_builtins): Don't build any types here. Defer + all type resolution to def_builtin. + (ix86_init_builtin_types): Split out from ... + (ix86_init_builtins): ... here. Use ix86_get_builtin_func_type. + +2009-11-20 Michael Meissner + + PR target/41787 + * config/rs6000/rs6000.c (struct machine_function): Revert + 2009-10-23 change to set VRSAVE to non-0 if we use VSX. + (rs6000_expand_to_rtl_hook): Ditto. + (rs6000_check_vector_mode): Ditto. + (compute_vrsave_mask): Ditto. + +2009-11-20 Paul Brook + + * doc/invoke.texi: Document ARM -mcpu=cortex-a5. + * config/arm/arm-cores.def: Add cortex-a5. + * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a5. + * config/arm/arm-tune.md: Regenerate. + +2009-11-20 Olga Golovanevsky + + PR middle-end/39960 + * ipa-struct-reorg.c (find_pos_in_stmt): New parameter. + (ref_pos): New field in structure. + (insert_new_var_in_stmt): New function. + + +2009-11-20 Rainer Orth + + * config.gcc (alpha*-dec-osf[45]*): Set use_gcc_stdint. + * config/alpha/osf.h (SIG_ATOMIC_TYPE): Define. + (INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE): Define. + (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define. + (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE, + (INT_LEAST64_TYPE): Define. + (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE, + UINT_LEAST64_TYPE): Define. + (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE, + INT_FAST64_TYPE): Define. + (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE, + UINT_FAST64_TYPE): Define. + (INTPTR_TYPE, UINTPTR_TYPE): Define. + +2009-11-20 Julian Brown + + * config/arm/arm.h (ASM_OUTPUT_REG_PUSH): Handle STATIC_CHAIN_REGNUM + specially for Thumb-1. + (ASM_OUTPUT_REG_POP): Likewise. + +2009-11-19 Jason Merrill + + * dwarf2out.c (get_context_die): Take TYPE_MAIN_VARIANT. + +2009-11-19 Basile Starynkevitch + Rafael Avila de Espindola + + * doc/plugins.texi (Plugin initialization): Added advices for + retrieving the version of GCC at plugin compilation and loading + times. + +2009-11-19 Basile Starynkevitch + + * plugin.c (FMT_FOR_PLUGIN_EVENT): added definition. + (dump_active_plugins): output to file everything. Use + internationalized dump & FMT_FOR_PLUGIN_EVENT. + +2009-11-19 Richard Guenther + + * gimple.c (canonicalize_cond_expr_cond): Strip conversions + around truth-valued expressions. + * tree.c (free_lang_data): Untangle check for LTO frontend. + +2009-11-19 Jakub Jelinek + + * tree.c (need_assembler_name_p): Use cgraph_get_node instead + of cgraph_node_for_decl. + * cgraph.h (cgraph_node_for_decl): Remove prototype. + * cgraph.c (cgraph_node_for_decl): Remove. + (cgraph_get_node): Just return NULL if !cgraph_hash. + +2009-11-19 Paul Brook + + * config.gcc: Add new ARM --with-fpu options. + * doc/invoke.texi: Docuent ARM -mfpu=fpv4-sp-d16. + * config/arm/arm.c (all_fpus): Add fpv4-sp-d16. + +2009-11-18 Richard Guenther + + * gimple.h (union gimple_statement_d): Add gsmembase member. + (gimple_vuse_op): Use gsmembase for access. + (gimple_vdef_op): Likewise. + (gimple_vuse): Likewise. + (gimple_vdef): Likewise. + (gimple_vuse_ptr): Likewise. + (gimple_vdef_ptr): Likewise. + (gimple_set_vuse): Likewise. + (gimple_set_vdef): Likewise. + * gsstruct.def (GSS_WITH_MEM_OPS_BASE): Add. + +2009-11-18 Daniel Jacobowitz + + * doc/arm-neon-intrinsics.texi: Regenerated. + +2009-11-18 Daniel Jacobowitz + + * config/arm/neon-docgen.ml (analyze_shape_elt): Handle + Alternatives. + +2009-11-18 Paul Brook + Daniel Jacobowitz + + * config/arm/arm.c (FL_ARCH7EM, FL_FOR_ARCH7EM): Define. + (arm_arch7em): New variable. + (all_architectures): Add armv7e-m. + (arm_override_options): Set arm_arch7em. + * config/arm/arm.h (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): + Include arm_arch7em. + (arm_arch7em): Declare. + +2009-11-18 Richard Guenther + + * lto-streamer-in.c (input_gimple_stmt): Assert that we find + a valid field decl if checking is enabled. + +2009-11-18 Martin Jambor + + * ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid. + (lto_ipa_fixup_call_notes): Declare. + * ipa-prop.c (ipa_note_param_call): Store gimple uid. + (update_call_notes_after_inlining): Copy call stmt uid to the new + edge. + (ipa_write_param_call_note): New function. + (ipa_read_param_call_note): New function + (ipa_write_node_info): Write also param call notes. Removed a bogus + comment, reformatted to fit 80 columns. + (ipa_read_node_info): Read also param call notes. Removed a bogus + comment. Remove ipa_edge_args_vector growth. + (lto_ipa_fixup_call_notes): New function. + * ipa-cp.c (pass_ipa_cp): Add stmt_fixup hook. + * ipa-inline.c (cgraph_mark_inline_edge): Perform indirect + inlining regardless of flag_wpa. + (cgraph_decide_inlining_of_small_functions): Likewise. + (cgraph_decide_inlining): Likewise. + (inline_read_summary): Likewise. + +2009-11-18 Jan Hubicka + + * predict.c (compute_function_frequency): Export. + * predict.h (compute_function_frequency): Declare. + * tree-optimize.c (execute_fixup_cfg): Rescale frequencies. + +2009-11-18 Martin Jambor + + * passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids + on all nodes we write summaries for. + +2009-11-18 Shujing Zhao + + PR middle-end/22201 + * params.def (PARAM_INLINE_UNIT_GROWTH) + PARAM_IPCP_UNIT_GROWTH) + (PARAM_EARLY_INLINING_INSNS, PARAM_IRA_MAX_LOOPS_NUM) + (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE) + (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP) + (PARAM_MIN_INSN_TO_PREFETCH_RATIO) + (PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO) + PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Uppercase the first letter of the + description string. + +2009-11-18 Jakub Jelinek + + * dwarf2out.c (loc_list_from_tree): Don't call rtl_for_decl_location + unnecessarily. + (rtl_for_decl_location): Try harder to get a rtl for TREE_STATIC vars. + + PR c++/3187 + * cgraph.h (struct cgraph_node): Add same_body and same_body_alias + fields. + (cgraph_same_body_alias, cgraph_remove_same_body_alias): New + prototypes. + * cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks, + cgraph_materialize_all_clones): Handle same_body aliases. + * cgraph.c (cgraph_allocate_node): New function. + (cgraph_create_node): Use it. + (cgraph_node_for_decl, cgraph_node, cgraph_get_node, + cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases. + (cgraph_same_body_alias, cgraph_remove_same_body_alias): New + functions. + * lto-cgraph.c (lto_output_node): Stream out same_body aliases. + (input_node): Stream in same_body aliases. + * lto-symtab.c (lto_cgraph_replace_node): Clear node pointers + for same_body aliases. + (lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases. + +2009-11-18 Iain Sandoe + + PR other/39888 + * config/darwin.h: Use the extension stub libraries to access + current libgcc_s features. + +2009-11-18 Alexandre Oliva + + PR debug/41926 + * tree-vect-loop.c (vect_loop_kill_debug_uses): New. + (vect_transform_loop): Call it. + +2009-11-18 Alexandre Oliva + + * tree-ssa.c (insert_debug_temp_for_var_def): Fix handling of + released SSA names. + +2009-11-18 Alexandre Oliva + + PR debug/41888 + PR debug/41886 + * graphite-scop-detection.c (stmt_simple_for_scop_p): Debug stmts + are ok. + * graphite-sese-to-poly.c (graphite_stmt_p): Likewise. + (try_generate_gimple_bb): Skip debug stmts when finding data refs. + * sese.c (sese_build_liveouts_bb): Skip debug stmts. + (sese_bad_liveouts_use): New. + (sese_reset_debug_liveouts_bb): New. + (sese_build_liveouts): Use it. + (rename_variables_in_stmt): Reset debug stmts rather than creating + new vars for them. + (expand_scalar_variable_stmt): Likewise. + +2009-11-18 Alexandre Oliva + + * df-scan.c (df_ref_create): Don't mark BB as dirty on debug insns. + (df_ref_remove): Likewise. + +2009-11-17 Jan Hubicka + + * ipa-struct-reorg.c (update_cgraph_with_malloc_call): Fix profile + info. + +2009-11-17 Eric Botcazou + + * toplev.c (process_options): Remove dead code. + * doc/invoke.texi (-frename-registers): Mention -fpeel-loops. + +2009-11-17 Rafael Avila de Espindola + + * lto-symtab.c (lto_symtab_resolve_symbols): Always initialize the + nodes. + +2009-11-17 Ulrich Weigand + + PR tree-optimization/41857 + * tree-ssa-address.c (move_hint_to_base): Use void pointer to + TYPE's address space instead of pointer to TYPE. + +2009-11-17 Ulrich Weigand + + * reload.c (find_reloads_address): Fix typo. + +2009-11-17 Ulrich Weigand + + * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC + registers in leaf functions if possible. + +2009-11-17 Maxim Kuvyrkov + + * config/m68k/m68k-devices.def: Add MCF5441x family. + +2009-11-17 Jan Hubicka + + * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not access + removed node. + * cgraphunit.c (verify_cgraph_node): Verify frequencies for match. + +2009-11-17 Uros Bizjak + + * config/i386/predicates.md (x86_64_szext_general_operand): Do not + nest ior expressions. + (x86_64_szext_nonmemory_operand): Ditto. + (call_insn_operand): Ditto. + +2009-11-16 Alexandre Oliva + + * stmt.c (expand_asm_stmt): Get locus from stmt. + +2009-11-16 Alexandre Oliva + + * tree-cfg.c (gimple_redirect_edge_and_branch) : + Create the decl label for the new dest block on demand. Require + a fallthrough edge if no asm labels were redirected. + +2009-11-16 Uros Bizjak + + * config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for + operand 1 predicate. + (cstoresi4): Ditto for operand 2. + (cbranch4): Macroize expander from cbranch{qi,hi,si,di,ti}4 + patterns using SDWIM mode iterator. + (cstore4): Macroize expander from cstore{qi,hi,si,di}4 patterns + using SWIM mode iterator. + (cmpdi_1): Rename from cmpdi_1_rex64. + (cmp_1): Macroize expander from cmp{si,di}_1 patterns using + SWI48 mode iterator. + (*cmp_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn using SWI + mode iterator. + (*cmp_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1. + (*cmp_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1. + (*cmpqi_ext_3_insn): Make private. + (*cmpqi_ext_3_insn_rex64): Make private. + (cmpstrnsi): Update for renamed cmpdi_1_rex64. + * config/i386/predicates.md (cmpsi_operand): Remove. + +2009-11-16 Paul Brook + + * doc/invoke.texi: Document ARM VFPv4 based FPUs. + * config/arm/arm.c (all_fpus): Add VFPv4 entries. + +2009-11-14 Jan Hubicka + + * cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper + ENTRY_BLOCK_PTR. + * cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely + zero out all callees. + * cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for + frequency and count match. + * ipa-inline.c (update_noncloned_frequencies): New function. + (cgraph_clone_inlined_nodes): Use it. + * tree-inline.c (copy_bb): Fix frequency scaling; output + diagnostic on frequency mismatches to dump file. + (initialize_cfun): Do not scale frequency; fix count scaling; + initialize entry and exit block frequencies; copy profile info. + (copy_cfg_body): Use frequency_scale as argument; fix count scaling. + (copy_body): Use frequency_scale as argument. + (expand_call_inline): Compute frequency scale and output diagnostic + to dump file. + (delete_unreachable_blocks_update_callgrah): Remove checking that + has to be done after edge redirection. + (tree_function_versioning): Update initialize_cfun and copy_body call. + +2009-11-14 Jan Hubicka + + * cgraph.c (cgraph_release_function_body): Update use of + ipa_transforms_to_apply. + (cgraph_remove_node): Remove ipa_transforms_to_apply. + * cgraph.h (struct cgraph_node): Add ipa_transforms_to_apply. + * cgraphunit.c (save_inline_function_body): Clear ipa_transforms for + copied body. + (cgraph_materialize_clone): Remove original if dead. + * lto-streamer-in.c (lto_read_body): Remove FIXME and + ipa_transforms_to_apply hack. + * function.h (struct function): Add ipa_transforms_to_apply. + * ipa.c (cgraph_remove_unreachable_nodes): Handle dead clone originals. + * tree-inline.c (copy_bb): Update sanity check. + (initialize_cfun): Do not copy ipa_transforms_to_apply. + (expand_call_inline): remove dead clone originals. + (tree_function_versioning): Merge transformation queues. + * passes.c (add_ipa_transform_pass): Remove. + (execute_one_ipa_transform_pass): Update ipa_transforms_to_apply + tracking. + (execute_all_ipa_transforms): Update. + (execute_one_pass): Update. + +2009-11-14 Andy Hutchinson + + PR target/21078, 21080 + * config/avr/avr.c (avr_return_addr_rtx): New function for + builtin_return_address. + (expand_prologue): Calculate stack usage. + (avr_asm_function_end_prologue): Output stack size and offset label. + * config/avr/avr.h (RETURN_ADDR_RTX): Replace. + (machine_function): Add stack_usage. + * config/avr/avr-protos.h (avr_return_addr_rtx): New function. + +2009-11-14 Anatoly Sokolov + + * config/iq2000/iq2000.c (iq2000_function_value): Make static, add + new 'outgoing' argument. + (iq2000_libcall_value, iq2000_function_value_regno_p): New functions. + (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. + * config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use + iq2000_function_value_regno_p. + (FUNCTION_VALUE, LIBCALL_VALUE): Remove. + * config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p): + Declare. + +2009-11-14 Richard Earnshaw + + PR target/42031 + * arm.md (adddi_sesidi_di): Place tied contraint first. + (adddi_zesidi_di, subdi_di_zesidi, subdi_di_sesidi): Likewise + (subdi_zesidi_di, subdi_sesidi_di): Likewise. + (mulsi3_compare0, mulsi_compare0_scratch): Likewise. + (mulsi3addsi, mulsi3addsi_compare0): Likewise. + (mulsi3addsi_compare0_scratch, smulsi3_highpart_nov6): Likewise. + (umulsi3_highpart_nov6, anddi_zesidi_di, anddi_sesdi_di): Likewise. + (anddi_notdi_di, iordi_sesidi_di, xordi_sesidi_di): Likewise. + (andsi_iorsi3_notsi, arm_ashldi3_1bit, arm_ashrdi3_1_bit): Likewise. + (arm_lshrdi3_1bit, one_cmpldi2): Likewise. + +2009-11-14 Uros Bizjak + + * config/i386/predicates.md (call_register_no_elim_operand): + New predicate. Reject stack register as valid call operand + for 32bit targets. + (call_insn_operand): Use call_register_no_elim_operand. + +2009-11-13 Richard Henderson + + * function.c (stack_protect_prologue): Don't bypass expand_expr + for stack_protect_guard and guard_decl. + (stack_protect_epilogue): Likewise. + +2009-11-13 Jan Hubicka + + * ipa.c (function_and_variable_visibility): Clear COMDAT on functions + when to PUBLIC is set. + +2009-11-13 Jakub Jelinek + + PR middle-end/42029 + * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on + tmp_load if needed. + 2009-11-13 Uros Bizjak PR target/41900 - (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1): Use "lsm" - as operand 1 constraint. + * config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1, + *call_value_1): Use "lsm" as operand 1 constraint. * config/i386/predicates.md (call_insn_operand): Depend on index_register_operand to avoid %esp register.