s390.c (s390_hotpatch_trampoline_halfwords_default): New constant
authorDominik Vogt <vogt@linux.vnet.ibm.com>
Thu, 19 Dec 2013 12:00:43 +0000 (12:00 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Thu, 19 Dec 2013 12:00:43 +0000 (12:00 +0000)
commitd0de9e136f1dbe307e1d6ebb04b23131056cfa29
tree1db5b5b063976f159ca72b6bc57086c6c957a104
parent2f62165dce49a99b72d729aae9f2d992a85c7765
s390.c (s390_hotpatch_trampoline_halfwords_default): New constant

2013-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
    Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

* config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default): New
constant
(s390_hotpatch_trampoline_halfwords_max): New constant
(s390_hotpatch_trampoline_halfwords): New static variable
(get_hotpatch_attribute): New function
(s390_handle_hotpatch_attribute): New function
(s390_attribute_table): New target specific attribute table to implement
the hotpatch attribute
(s390_option_override): Parse hotpatch options
(s390_function_num_hotpatch_trampoline_halfwords): New function
(s390_can_inline_p): Implement target hook to
suppress hotpatching for explicitly inlined functions
(s390_asm_output_function_label): Generate hotpatch prologue
(TARGET_ATTRIBUTE_TABLE): Define to implement target attribute table
(TARGET_CAN_INLINE_P): Define to implement target hook
* config/s390/s390.opt (mhotpatch): New options -mhotpatch, -mhotpatch=
* config/s390/s390-protos.h (s390_asm_output_function_label): Add
prototype
* config/s390/s390.h (ASM_OUTPUT_FUNCTION_LABEL): Target specific
function label generation for hotpatching
(FUNCTION_BOUNDARY): Align functions to eight bytes
* doc/extend.texi: Document hotpatch attribute
* doc/invoke.texi: Document -mhotpatch option

2013-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
    Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

* gcc/testsuite/gcc.target/s390/hotpatch-1.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-2.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-3.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-4.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-5.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-6.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-7.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-8.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-9.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-10.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-11.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-12.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-compile-1.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-compile-2.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-compile-3.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-compile-4.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-compile-5.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-compile-6.c: New test
* gcc/testsuite/gcc.target/s390/hotpatch-compile-7.c: New test

Co-Authored-By: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
From-SVN: r206111
27 files changed:
gcc/ChangeLog
gcc/config/s390/s390-protos.h
gcc/config/s390/s390.c
gcc/config/s390/s390.h
gcc/config/s390/s390.opt
gcc/doc/extend.texi
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/s390/hotpatch-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-10.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-11.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-12.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-9.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-compile-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-compile-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-compile-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-compile-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-compile-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-compile-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/hotpatch-compile-7.c [new file with mode: 0644]