public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/52144] New: ARM should support arm/thumb function attribute to permit different instruction sets in the same source
@ 2012-02-06 23:02 rafael.carre at gmail dot com
  2012-02-06 23:03 ` [Bug target/52144] " pinskia at gcc dot gnu.org
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: rafael.carre at gmail dot com @ 2012-02-06 23:02 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52144

             Bug #: 52144
           Summary: ARM should support arm/thumb function attribute to
                    permit different instruction sets in the same source
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: target
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: rafael.carre@gmail.com


Reference: First message of http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40419

Mixing thumb and ARM in the same source is currently not possible.

That would permit LTO to work when mixing those and close
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45729


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug target/52144] ARM should support arm/thumb function attribute to permit different instruction sets in the same source
  2012-02-06 23:02 [Bug target/52144] New: ARM should support arm/thumb function attribute to permit different instruction sets in the same source rafael.carre at gmail dot com
@ 2012-02-06 23:03 ` pinskia at gcc dot gnu.org
  2015-05-20 12:59 ` chrbr at gcc dot gnu.org
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu.org @ 2012-02-06 23:03 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52144

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |arm*-*-*
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-02-06
     Ever Confirmed|0                           |1

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-02-06 23:03:04 UTC ---
Confirmed.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug target/52144] ARM should support arm/thumb function attribute to permit different instruction sets in the same source
  2012-02-06 23:02 [Bug target/52144] New: ARM should support arm/thumb function attribute to permit different instruction sets in the same source rafael.carre at gmail dot com
  2012-02-06 23:03 ` [Bug target/52144] " pinskia at gcc dot gnu.org
@ 2015-05-20 12:59 ` chrbr at gcc dot gnu.org
  2015-05-20 13:13 ` chrbr at gcc dot gnu.org
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: chrbr at gcc dot gnu.org @ 2015-05-20 12:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52144

chrbr at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Blocks|                            |59884
                 CC|                            |joey.ye at arm dot com

--- Comment #2 from chrbr at gcc dot gnu.org ---
*** Bug 59884 has been marked as a duplicate of this bug. ***


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59884
[Bug 59884] Unexpected warning pragma GCC target


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug target/52144] ARM should support arm/thumb function attribute to permit different instruction sets in the same source
  2012-02-06 23:02 [Bug target/52144] New: ARM should support arm/thumb function attribute to permit different instruction sets in the same source rafael.carre at gmail dot com
  2012-02-06 23:03 ` [Bug target/52144] " pinskia at gcc dot gnu.org
  2015-05-20 12:59 ` chrbr at gcc dot gnu.org
@ 2015-05-20 13:13 ` chrbr at gcc dot gnu.org
  2015-05-26 14:06 ` chrbr at gcc dot gnu.org
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: chrbr at gcc dot gnu.org @ 2015-05-20 13:13 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52144

chrbr at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |chrbr at gcc dot gnu.org

--- Comment #3 from chrbr at gcc dot gnu.org ---
patch set posted :

(2.1/6) https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01185.html
(2.2/6) https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01198.html
(4/6)   https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01537.html
(5.1/6) https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01539.html
(5.2/6) https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01558.html
(6  /6) https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01542.html


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug target/52144] ARM should support arm/thumb function attribute to permit different instruction sets in the same source
  2012-02-06 23:02 [Bug target/52144] New: ARM should support arm/thumb function attribute to permit different instruction sets in the same source rafael.carre at gmail dot com
                   ` (2 preceding siblings ...)
  2015-05-20 13:13 ` chrbr at gcc dot gnu.org
@ 2015-05-26 14:06 ` chrbr at gcc dot gnu.org
  2015-06-10  7:51 ` chrbr at gcc dot gnu.org
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: chrbr at gcc dot gnu.org @ 2015-05-26 14:06 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52144

--- Comment #4 from chrbr at gcc dot gnu.org ---
Author: chrbr
Date: Tue May 26 14:06:17 2015
New Revision: 223699

URL: https://gcc.gnu.org/viewcvs?rev=223699&root=gcc&view=rev
Log:
 2015-05-13  Christian Bruel  <christian.bruel@st.com>

        PR target/52144
        * config/arm/arm.c (arm_option_check_internal)
        (arm_option_params_internal): Check opts->target_flags to set macros.
        (TREE_TARGET_ARM, TREE_TARGET_THUMB)
        (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
        (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
        (builtin_define): Replaced with def_or_undef_macro.
        * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
        TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
        (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
        (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
        (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
        (TARGET_ARM_FEATURE_LDREX_P)
        (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
        (def_or_undef_macro): New function.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/arm-c.c
    trunk/gcc/config/arm/arm.c
    trunk/gcc/config/arm/arm.h


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug target/52144] ARM should support arm/thumb function attribute to permit different instruction sets in the same source
  2012-02-06 23:02 [Bug target/52144] New: ARM should support arm/thumb function attribute to permit different instruction sets in the same source rafael.carre at gmail dot com
                   ` (3 preceding siblings ...)
  2015-05-26 14:06 ` chrbr at gcc dot gnu.org
@ 2015-06-10  7:51 ` chrbr at gcc dot gnu.org
  2015-06-11  8:51 ` chrbr at gcc dot gnu.org
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: chrbr at gcc dot gnu.org @ 2015-06-10  7:51 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52144

--- Comment #5 from chrbr at gcc dot gnu.org ---
Author: chrbr
Date: Wed Jun 10 07:50:59 2015
New Revision: 224314

URL: https://gcc.gnu.org/viewcvs?rev=224314&root=gcc&view=rev
Log:
Add ARM/thumb attribute target

        PR target/52144

        * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified):
Save.
        * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
        (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
        * config/arm/arm.h (SWITCHABLE_TARGET): Define.
        * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
        (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
        (arm_valid_target_attribute_p): Likewise.
        (arm_set_current_function, arm_can_inline_p): Likewise.
        (arm_valid_target_attribute_rec): Likewise.
        (arm_previous_fndecl): New variable.
        (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
        (TARGET_CAN_INLINE_P): Define.
        (arm_asm_trampoline_template): Emit mode.
        (arm_file_start): Don't set unified syntax.
        (arm_declare_function_name): Set unified syntax and mode.
        (arm_option_override): Init target_option_default_node.
        and target_option_current_node.
        * config/arm/arm.md (*call_value_symbol): Set mode when possible.
        (*call_symbol): Likewise.
        * doc/extend.texi: Document ARM/Thumb target attribute.
        * doc/invoke.texi: Likewise.

        * gcc.target/arm/attr_arm.c: New test
        * gcc.target/arm/attr_arm-err.c: New test
        * gcc.target/arm/attr_thumb.c: New test
        * gcc.target/arm/attr_thumb-static.c: New test


Added:
    trunk/gcc/testsuite/gcc.target/arm/attr_arm-err.c
    trunk/gcc/testsuite/gcc.target/arm/attr_arm.c
    trunk/gcc/testsuite/gcc.target/arm/attr_thumb-static.c
    trunk/gcc/testsuite/gcc.target/arm/attr_thumb.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/arm-protos.h
    trunk/gcc/config/arm/arm.c
    trunk/gcc/config/arm/arm.h
    trunk/gcc/config/arm/arm.md
    trunk/gcc/config/arm/arm.opt
    trunk/gcc/doc/extend.texi
    trunk/gcc/doc/invoke.texi
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug target/52144] ARM should support arm/thumb function attribute to permit different instruction sets in the same source
  2012-02-06 23:02 [Bug target/52144] New: ARM should support arm/thumb function attribute to permit different instruction sets in the same source rafael.carre at gmail dot com
                   ` (4 preceding siblings ...)
  2015-06-10  7:51 ` chrbr at gcc dot gnu.org
@ 2015-06-11  8:51 ` chrbr at gcc dot gnu.org
  2015-06-19  6:59 ` chrbr at gcc dot gnu.org
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: chrbr at gcc dot gnu.org @ 2015-06-11  8:51 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52144

--- Comment #6 from chrbr at gcc dot gnu.org ---
Author: chrbr
Date: Thu Jun 11 08:51:17 2015
New Revision: 224365

URL: https://gcc.gnu.org/viewcvs?rev=224365&root=gcc&view=rev
Log:
Add ARM/thumb pragma target 

        PR target/52144
        * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
         macros in ...
        (arm_cpu_builtins): New function.
        (arm_pragma_target_parse): Call arm_cpu_builtins.
        * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
        (arm_register_target_pragmas): Likewise.
        * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
         Call arm_register_target_pragmas.
        * config/arm/arm-c.c (arm_register_target_pragmas): New function.
        (arm_pragma_target_parse): Likewise.

        PR target/52144
        * gcc.target/arm/pragma_attribute.c: New test.


Added:
    trunk/gcc/testsuite/gcc.target/arm/pragma_attribute.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/arm-c.c
    trunk/gcc/config/arm/arm-protos.h
    trunk/gcc/config/arm/arm.h
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug target/52144] ARM should support arm/thumb function attribute to permit different instruction sets in the same source
  2012-02-06 23:02 [Bug target/52144] New: ARM should support arm/thumb function attribute to permit different instruction sets in the same source rafael.carre at gmail dot com
                   ` (5 preceding siblings ...)
  2015-06-11  8:51 ` chrbr at gcc dot gnu.org
@ 2015-06-19  6:59 ` chrbr at gcc dot gnu.org
  2015-06-22  7:32 ` chrbr at gcc dot gnu.org
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: chrbr at gcc dot gnu.org @ 2015-06-19  6:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52144

--- Comment #7 from chrbr at gcc dot gnu.org ---
Author: chrbr
Date: Fri Jun 19 06:58:22 2015
New Revision: 224638

URL: https://gcc.gnu.org/viewcvs?rev=224638&root=gcc&view=rev
Log:
PR target/66541
PR target/52144
* config/arm/arm.c (arm_set_current_function): Handle
explicit default options.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/arm.c


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug target/52144] ARM should support arm/thumb function attribute to permit different instruction sets in the same source
  2012-02-06 23:02 [Bug target/52144] New: ARM should support arm/thumb function attribute to permit different instruction sets in the same source rafael.carre at gmail dot com
                   ` (6 preceding siblings ...)
  2015-06-19  6:59 ` chrbr at gcc dot gnu.org
@ 2015-06-22  7:32 ` chrbr at gcc dot gnu.org
  2015-06-22  8:22 ` chrbr at gcc dot gnu.org
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: chrbr at gcc dot gnu.org @ 2015-06-22  7:32 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52144

--- Comment #8 from chrbr at gcc dot gnu.org ---
Author: chrbr
Date: Mon Jun 22 07:32:15 2015
New Revision: 224721

URL: https://gcc.gnu.org/viewcvs?rev=224721&root=gcc&view=rev
Log:
Add -mflip-thumb for testing.

PR target/52144n
* config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
(TARGET_INSERT_ATTRIBUTES): Define.
(thumb_flipper): New var.
* config/arm/arm.opt (-mflip-thumb): New switch.

PR target/52144
* gcc.target/arm/flip-thumb.c: New test.


Added:
    trunk/gcc/testsuite/gcc.target/arm/flip-thumb.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/arm.c
    trunk/gcc/config/arm/arm.opt
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug target/52144] ARM should support arm/thumb function attribute to permit different instruction sets in the same source
  2012-02-06 23:02 [Bug target/52144] New: ARM should support arm/thumb function attribute to permit different instruction sets in the same source rafael.carre at gmail dot com
                   ` (7 preceding siblings ...)
  2015-06-22  7:32 ` chrbr at gcc dot gnu.org
@ 2015-06-22  8:22 ` chrbr at gcc dot gnu.org
  2015-07-07  7:56 ` chrbr at gcc dot gnu.org
  2015-09-15 13:43 ` chrbr at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: chrbr at gcc dot gnu.org @ 2015-06-22  8:22 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52144

chrbr at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #9 from chrbr at gcc dot gnu.org ---
attribute ((thumb,arm)) should be fine for 6.0.0 r224722


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug target/52144] ARM should support arm/thumb function attribute to permit different instruction sets in the same source
  2012-02-06 23:02 [Bug target/52144] New: ARM should support arm/thumb function attribute to permit different instruction sets in the same source rafael.carre at gmail dot com
                   ` (8 preceding siblings ...)
  2015-06-22  8:22 ` chrbr at gcc dot gnu.org
@ 2015-07-07  7:56 ` chrbr at gcc dot gnu.org
  2015-09-15 13:43 ` chrbr at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: chrbr at gcc dot gnu.org @ 2015-07-07  7:56 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52144

--- Comment #10 from chrbr at gcc dot gnu.org ---
Author: chrbr
Date: Tue Jul  7 07:56:10 2015
New Revision: 225503

URL: https://gcc.gnu.org/viewcvs?rev=225503&root=gcc&view=rev
Log:
Cleanup arch file directive.

PR target/52144
* config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.

PR target/52144
* gcc.target/arm/flip-thumb.c: Fix scan.
* gcc.target/arm/attr_thumb.c: Test for all targets. Fix scan.
* gcc.target/arm/attr_arm.c: Test for all targets. Fix scan.
* gcc.target/arm/attr_thumb-static.c: Test for all targets.
Fix return value.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/elf.h
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.target/arm/attr_arm.c
    trunk/gcc/testsuite/gcc.target/arm/attr_thumb-static.c
    trunk/gcc/testsuite/gcc.target/arm/attr_thumb.c
    trunk/gcc/testsuite/gcc.target/arm/flip-thumb.c


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug target/52144] ARM should support arm/thumb function attribute to permit different instruction sets in the same source
  2012-02-06 23:02 [Bug target/52144] New: ARM should support arm/thumb function attribute to permit different instruction sets in the same source rafael.carre at gmail dot com
                   ` (9 preceding siblings ...)
  2015-07-07  7:56 ` chrbr at gcc dot gnu.org
@ 2015-09-15 13:43 ` chrbr at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: chrbr at gcc dot gnu.org @ 2015-09-15 13:43 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52144

--- Comment #11 from chrbr at gcc dot gnu.org ---
Author: chrbr
Date: Tue Sep 15 13:43:17 2015
New Revision: 227795

URL: https://gcc.gnu.org/viewcvs?rev=227795&root=gcc&view=rev
Log:
2015-09-15  Christian Bruel  <christian.bruel@st.com>

        PR target/52144
        * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
        * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
        Remove flags parameter.
        * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
        (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
        (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
        (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros
with...
        (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
        (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
        (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
        * gcc/config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/arm-c.c
    trunk/gcc/config/arm/arm-protos.h
    trunk/gcc/config/arm/arm.c
    trunk/gcc/config/arm/arm.h


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2015-09-15 13:43 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-06 23:02 [Bug target/52144] New: ARM should support arm/thumb function attribute to permit different instruction sets in the same source rafael.carre at gmail dot com
2012-02-06 23:03 ` [Bug target/52144] " pinskia at gcc dot gnu.org
2015-05-20 12:59 ` chrbr at gcc dot gnu.org
2015-05-20 13:13 ` chrbr at gcc dot gnu.org
2015-05-26 14:06 ` chrbr at gcc dot gnu.org
2015-06-10  7:51 ` chrbr at gcc dot gnu.org
2015-06-11  8:51 ` chrbr at gcc dot gnu.org
2015-06-19  6:59 ` chrbr at gcc dot gnu.org
2015-06-22  7:32 ` chrbr at gcc dot gnu.org
2015-06-22  8:22 ` chrbr at gcc dot gnu.org
2015-07-07  7:56 ` chrbr at gcc dot gnu.org
2015-09-15 13:43 ` chrbr at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).