gcc/
commit816d21d096f67bb822dc55d80c3b3cde9926faeb
authoryroux <yroux@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 10 Aug 2014 22:53:28 +0000 (10 22:53 +0000)
committeryroux <yroux@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 10 Aug 2014 22:53:28 +0000 (10 22:53 +0000)
treeb269faec5257683c6fabebacc0573905fdf234ce
parent2d48ecc293c41b95c6eb201f8ad4c9906e0a241f
gcc/
2014-08-11 Yvan Roux  <yvan.roux@linaro.org>

Backport from trunk r211270, r211271, r211273, r211275, r212943,
r212945, r212946, r212947, r212949, r212950, r212951, r212952, r212954,
r212955, r212956, r212957, r212958, r212976, r212996, r212997, r212999,
r213000.
2014-07-24  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
(aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.

2014-07-24  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
(aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.

2014-07-24  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c (aarch64_restore_callee_saves)
(aarch64_save_callee_saves): New parameter "skip_wb".
(aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.

2014-07-24  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
"wb_candidate2".
* config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.

2014-07-24  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
subtract outgoing area size when restoring stack_pointer_rtx.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
(aarch64_gen_loadwb_pair): New helper function.
(aarch64_expand_epilogue): Simplify code using new helper functions.
* config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
(aarch64_gen_storewb_pair): New helper function.
(aarch64_expand_prologue): Simplify code using new helper functions.
* config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
Rename to aarch64_save_callee_saves, remove restore code.
(aarch64_restore_callee_saves): New function.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
(aarch64_save_callee_saves): New function to handle reg save
for both core and vectore regs.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c (aarch64_gen_load_pair)
(aarch64_gen_store_pair): New helper function.
(aarch64_save_or_restore_callee_save_registers)
(aarch64_save_or_restore_fprs): Use new helper functions.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
(aarch64_save_or_restore_callee_save_registers)
(aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c
(aarch64_save_or_restore_callee_save_registers)
(aarch64_save_or_restore_fprs): Hoist calculation of register rtx.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c
(aarch64_save_or_restore_callee_save_registers)
(aarch64_save_or_restore_fprs): Remove 'increment'.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c
(aarch64_save_or_restore_callee_save_registers)
(aarch64_save_or_restore_fprs): Use register offset in
cfun->machine->frame.reg_offset.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c
(aarch64_save_or_restore_callee_save_registers)
(aarch64_save_or_restore_fprs): Remove base_rtx.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c
(aarch64_save_or_restore_callee_save_registers): Rename 'offset'
to 'start_offset'.  Remove local variable 'start_offset'.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
type to HOST_WIDE_INT.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c (aarch64_expand_prologue)
(aarch64_save_or_restore_fprs)
(aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.

2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>

* config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
frame_size.
* config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
aarch64_frame hard_fp_offset and frame_size.
(aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
frame_size; remove original_frame_size.
(aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
(aarch64_initial_elimination_offset): Remove frame_size and
offset.  Use aarch64_frame frame_size.

2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
    Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c (aarch64_layout_frame): Correct
initialization of R30 offset.  Update offset.  Iterate core
regisers upto X30.  Remove X29, X30 specific code.

2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
    Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
(aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
(aarch64_register_saved_on_entry): Adjust test.

2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>

* config/aarch64/aarch64.h (machine_function): Move
saved_varargs_size from here...
(aarch64_frameGTY): ... to here.

* config/aarch64/aarch64.c (aarch64_expand_prologue)
(aarch64_expand_epilogue, aarch64_final_eh_return_addr)
(aarch64_initial_elimination_offset)
(aarch64_setup_incoming_varargs): Adjust location of
saved_varargs_size.

gcc/testsuite/
2014-08-11 Yvan Roux  <yvan.roux@linaro.org>

Backport from trunk r212959, r212976, r212999, r213000.
2014-07-24  Jiong Wang  <jiong.wang@arm.com>

* gcc.target/aarch64/test_frame_1.c: Match optimized instruction
sequences.
* gcc.target/aarch64/test_frame_2.c: Likewise.
* gcc.target/aarch64/test_frame_4.c: Likewise.
* gcc.target/aarch64/test_frame_6.c: Likewise.
* gcc.target/aarch64/test_frame_7.c: Likewise.
* gcc.target/aarch64/test_frame_8.c: Likewise.
* gcc.target/aarch64/test_frame_10.c: Likewise.

2014-07-24  Jiong Wang  <jiong.wang@arm.com>

* gcc.target/aarch64/test_frame_1.c: Match optimized instruction
sequences.
* gcc.target/aarch64/test_frame_10.c: Likewise.
* gcc.target/aarch64/test_frame_2.c: Likewise.
* gcc.target/aarch64/test_frame_4.c: Likewise.
* gcc.target/aarch64/test_frame_6.c: Likewise.
* gcc.target/aarch64/test_frame_7.c: Likewise.
* gcc.target/aarch64/test_frame_8.c: Likewise.
* gcc.target/aarch64/test_fp_attribute_1.c: Likewise.

2014-07-24  Jiong Wang  <jiong.wang@arm.com>

* gcc.target/aarch64/test_frame_12.c: Match optimized instruction
sequences.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

* gcc.target/aarch64/test_frame_common.h: New file.
* gcc.target/aarch64/test_frame_1.c: Likewise.
* gcc.target/aarch64/test_frame_2.c: Likewise.
* gcc.target/aarch64/test_frame_3.c: Likewise.
* gcc.target/aarch64/test_frame_4.c: Likewise.
* gcc.target/aarch64/test_frame_5.c: Likewise.
* gcc.target/aarch64/test_frame_6.c: Likewise.
* gcc.target/aarch64/test_frame_7.c: Likewise.
* gcc.target/aarch64/test_frame_8.c: Likewise.
* gcc.target/aarch64/test_frame_9.c: Likewise.
* gcc.target/aarch64/test_frame_10.c: Likewise.
* gcc.target/aarch64/test_frame_11.c: Likewise.
* gcc.target/aarch64/test_frame_12.c: Likewise.
* gcc.target/aarch64/test_frame_13.c: Likewise.
* gcc.target/aarch64/test_frame_14.c: Likewise.
* gcc.target/aarch64/test_frame_15.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/linaro@213799 138bc75d-0d04-0410-961f-82ee72b054a4
22 files changed:
gcc-4_9-branch/gcc/ChangeLog.linaro
gcc-4_9-branch/gcc/config/aarch64/aarch64.c
gcc-4_9-branch/gcc/config/aarch64/aarch64.h
gcc-4_9-branch/gcc/config/aarch64/aarch64.md
gcc-4_9-branch/gcc/testsuite/ChangeLog.linaro
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_fp_attribute_1.c
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_1.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_10.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_11.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_12.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_13.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_14.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_15.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_2.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_3.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_4.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_5.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_6.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_7.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_8.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_9.c [new file with mode: 0644]
gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/test_frame_common.h [new file with mode: 0644]