OSDN Git Service

PR libitm/51830
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Jan 2012 14:57:44 +0000 (14:57 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Jan 2012 14:57:44 +0000 (14:57 +0000)
* builtin-types.def (BT_FN_UINT_UINT_VAR): New.
* gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.

libitm/ChangeLog:

PR libitm/51830
* config/x86/sjlj.S (_ITM_beginTransaction) [!__x86_64__]: Load
the first function argument to %eax.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183435 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/builtin-types.def
gcc/gtm-builtins.def
libitm/ChangeLog
libitm/config/x86/sjlj.S

index ccb49f7..c697580 100644 (file)
@@ -1,3 +1,9 @@
+2012-01-18  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR libitm/51830
+       * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
+       * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
+
 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
            Patrick Marlier  <patrick.marlier@gmail.com>
            Iain Sandoe  <developer@sandoe-acoustics.co.uk>
 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
            Patrick Marlier  <patrick.marlier@gmail.com>
            Iain Sandoe  <developer@sandoe-acoustics.co.uk>
@@ -22,8 +28,7 @@
 2012-01-23  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/51949
 2012-01-23  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/51949
-       * ipa-split.c (execute_split_functions): Do not split malloc
-       functions.
+       * ipa-split.c (execute_split_functions): Do not split malloc functions.
 
 2012-01-23  Jakub Jelinek  <jakub@redhat.com>
 
 
 2012-01-23  Jakub Jelinek  <jakub@redhat.com>
 
        (make_defs_and_copies_lists): Remove defs_list and copies_list
        arguments, add state argument, just truncate state->work_list
        instead of always allocating and freeing the vector.  Assert that
        (make_defs_and_copies_lists): Remove defs_list and copies_list
        arguments, add state argument, just truncate state->work_list
        instead of always allocating and freeing the vector.  Assert that
-       get_defs succeeds instead of returning 2.  Changed return type to
-       bool.
+       get_defs succeeds instead of returning 2.  Changed return type to bool.
        (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
        have ext_src_mode, see if it has been modified already with the
        right kind of extension and has been extended before from the
        ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
        (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
        have ext_src_mode, see if it has been modified already with the
        right kind of extension and has been extended before from the
        ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
-       just return true.  Remember the original mode in state->modified
-       array.
+       just return true.  Remember the original mode in state->modified array.
        (combine_reaching_defs): Add state argument.  Don't allocate and
        free here def_list, copied_list and vec vectors, instead just
        (combine_reaching_defs): Add state argument.  Don't allocate and
        free here def_list, copied_list and vec vectors, instead just
-       VEC_truncate the vectors in *state.  Don't handle outcome == 2
-       here.
+       VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
        (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
        Add state variable, clear vectors in it, initialize state.modified
        if needed.  Free all the vectors at the end and state.modified too.
        (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
        Add state variable, clear vectors in it, initialize state.modified
        if needed.  Free all the vectors at the end and state.modified too.
        * config/arm/arm.c (arm_count_output_move_double_insns): Call
        output_move_double on a copy of operands array.
 
        * config/arm/arm.c (arm_count_output_move_double_insns): Call
        output_move_double on a copy of operands array.
 
-2012-01-20   Cary Coutant  <ccoutant@google.com>
-            Dodji Seketeli  <dodji@redhat.com>
+2012-01-20  Cary Coutant  <ccoutant@google.com>
+           Dodji Seketeli  <dodji@redhat.com>
 
        PR debug/45682
        * dwarf2out.c (copy_declaration_context): Return ref to parent
 
        PR debug/45682
        * dwarf2out.c (copy_declaration_context): Return ref to parent
 2012-01-19  Vladimir Makarov  <vmakarov@redhat.com>
 
        PR rtl-optimization/40761
 2012-01-19  Vladimir Makarov  <vmakarov@redhat.com>
 
        PR rtl-optimization/40761
-       * ira-int.h (struct ira_loop_tree_node): Add comment for member
-       loop.  Add new member loop_num.
+       * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
+       Add new member loop_num.
        (IRA_LOOP_NODE_BY_INDEX): Modify the check.
        (ira_build): Remove the parameter.
 
        (IRA_LOOP_NODE_BY_INDEX): Modify the check.
        (ira_build): Remove the parameter.
 
-       * ira.c (ira_print_disposition): Use loop_num instead of
-       loop->num.
+       * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
        (ira.c): Do not build CFG loops for one region allocation.  Remove
        argument from ira_build call.
 
        (ira.c): Do not build CFG loops for one region allocation.  Remove
        argument from ira_build call.
 
        an assertion.
        (ira_print_expanded_allocno, loop_compare_func): Use loop_num
        instead of loop->num.
        an assertion.
        (ira_print_expanded_allocno, loop_compare_func): Use loop_num
        instead of loop->num.
-       (mark_loops_for_removal): Ditto.  Use loop_num instead of
-       loop->num.
+       (mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
        (mark_all_loops_for_removal): Ditto.
        (remove_unnecessary_regions): Separate the case when CFG loops
        are not built.
        (ira_build): Remove the parameter.  Use explicit number of regions
        when CFG loops are not built.
 
        (mark_all_loops_for_removal): Ditto.
        (remove_unnecessary_regions): Separate the case when CFG loops
        are not built.
        (ira_build): Remove the parameter.  Use explicit number of regions
        when CFG loops are not built.
 
-       * ira-color.c (print_loop_title): Separate the case for the root
-       node.  Use loop_num instead of loop->num.
+       * ira-color.c (print_loop_title): Separate the case for the root node.
+       Use loop_num instead of loop->num.
        (move_spill_restore): Use loop_num instead of loop->num.
 
        * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
        (move_spill_restore): Use loop_num instead of loop->num.
 
        * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
 
        * ira-lives.c (process_bb_node_lives): Ditto.
 
 
        * ira-lives.c (process_bb_node_lives): Ditto.
 
-       * ira-costs.c (print_allocno_costs, find_costs_and_classes):
-       Ditto.
+       * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
 
        * ira-conflicts.c (print_allocno_conflicts): Ditto.
 
 
        * ira-conflicts.c (print_allocno_conflicts): Ditto.
 
        with #ifdef HAVE_INITFINI_ARRAY.
        * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
        Add initfini-array.h to tm_file here.
        with #ifdef HAVE_INITFINI_ARRAY.
        * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
        Add initfini-array.h to tm_file here.
-       * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker
-       test.
+       * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
        * config.gcc: Don't add initfini-array.h to tm_file here.
        * configure: Regenerated.
 
        * config.gcc: Don't add initfini-array.h to tm_file here.
        * configure: Regenerated.
 
        PR rtl-optimization/51505
        * df-problems.c (df_kill_notes): New parameter live. Update comment.
        Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
        PR rtl-optimization/51505
        * df-problems.c (df_kill_notes): New parameter live. Update comment.
        Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
-       (df_note_bb_compute): Update the call to df_kill_notes. 
+       (df_note_bb_compute): Update the call to df_kill_notes.
 
 2012-01-18  Aldy Hernandez  <aldyh@redhat.com>
 
 
 2012-01-18  Aldy Hernandez  <aldyh@redhat.com>
 
        (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
        (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
        (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
        (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
        (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
        (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
-       (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead
-       of SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1
-       if it's false.
+       (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
+       SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
        (mips_get_tp): Add MIPS16 support.
        (mips_legitimize_tls_address): Remove MIPS16 sorry().
        Generalize DTPREL and TPREL handling.
        (mips_get_tp): Add MIPS16 support.
        (mips_legitimize_tls_address): Remove MIPS16 sorry().
        Generalize DTPREL and TPREL handling.
        (force_to_mem_operand): Use mips_use_pcrel_pool_p.
        * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
        (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
        (force_to_mem_operand): Use mips_use_pcrel_pool_p.
        * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
        (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
-       (*unshifted_high): New instruction.  Use it for MIPS16
-       high splitter.
+       (*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
        (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
        (*tls_get_tp_mips16_call_<mode>): Likewise.
 
        (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
        (*tls_get_tp_mips16_call_<mode>): Likewise.
 
index 8edf744..3a05b3b 100644 (file)
@@ -498,6 +498,8 @@ DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
                         BT_VOID, BT_CONST_PTR)
 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
                         BT_INT, BT_CONST_STRING)
                         BT_VOID, BT_CONST_PTR)
 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
                         BT_INT, BT_CONST_STRING)
+DEF_FUNCTION_TYPE_VAR_1 (BT_FN_UINT_UINT_VAR,
+                        BT_UINT, BT_UINT)
 
 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
                         BT_INT, BT_FILEPTR, BT_CONST_STRING)
 
 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
                         BT_INT, BT_FILEPTR, BT_CONST_STRING)
index 1630a0e..77b320c 100644 (file)
@@ -1,5 +1,5 @@
 DEF_TM_BUILTIN (BUILT_IN_TM_START, "_ITM_beginTransaction",
 DEF_TM_BUILTIN (BUILT_IN_TM_START, "_ITM_beginTransaction",
-               BT_FN_UINT_UINT, ATTR_TM_NOTHROW_RT_LIST)
+               BT_FN_UINT_UINT_VAR, ATTR_TM_NOTHROW_RT_LIST)
 
 DEF_TM_BUILTIN (BUILT_IN_TM_COMMIT, "_ITM_commitTransaction",
                BT_FN_VOID, ATTR_TM_NOTHROW_LIST)
 
 DEF_TM_BUILTIN (BUILT_IN_TM_COMMIT, "_ITM_commitTransaction",
                BT_FN_VOID, ATTR_TM_NOTHROW_LIST)
index 8ded3ee..bf29f4e 100644 (file)
@@ -1,3 +1,9 @@
+2012-01-23  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR libitm/51830
+       * config/x86/sjlj.S (_ITM_beginTransaction) [!__x86_64__]: Load
+       the first function argument to %eax.
+
 2012-01-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * libitm.h (_ITM_getThreadnum): Remove.
 2012-01-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * libitm.h (_ITM_getThreadnum): Remove.
index 8faa0c6..c30c216 100644 (file)
@@ -79,6 +79,7 @@ SYM(_ITM_beginTransaction):
        ret
 #else
        leal    4(%esp), %ecx
        ret
 #else
        leal    4(%esp), %ecx
+       movl    4(%esp), %eax
        subl    $28, %esp
        cfi_def_cfa_offset(32)
        movl    %ecx, 8(%esp)
        subl    $28, %esp
        cfi_def_cfa_offset(32)
        movl    %ecx, 8(%esp)