RFC: Patch to implement Aarch64 SIMD ABI
Steve Ellcey
sellcey@cavium.com
Mon Jul 23 20:08:00 GMT 2018
Here is an updated version of my patch for the Aarch64 SIMD ABI. Â I
think the writeback register saves are correct now and I improved the
register allocation by defining REG_ALLOC_ORDER. Â I also added clobbers
to expand_call when calling a non-SIMD function from a SIMD function.
I am still testing but any feedback on what I have so far would be
helpful.
Steve Ellcey
sellcey@cavium.com
2018-07-23  Steve Ellcey  <sellcey@cavium.com>
* config/aarch64/aarch64.c (aarch64_attribute_table): New array.
(aarch64_simd_decl_p): New function.
(aarch64_reg_save_mode): New function.
(aarch64_is_simd_call_p): New function.
(aarch64_layout_frame): Check for simd function.
(aarch64_gen_storewb_pair): Handle E_TFmode.
(aarch64_push_regs): Use aarch64_reg_save_mode to get mode.
(aarch64_gen_loadwb_pair): Handle E_TFmode.
(aarch64_pop_regs): Use aarch64_reg_save_mode to get mode.
(aarch64_components_for_bb): Check for simd function.
(aarch64_process_components): Ditto.
(aarch64_expand_prologue): Ditto.
(aarch64_expand_epilogue): Ditto.
(aarch64_expand_call): Ditto.
(TARGET_ATTRIBUTE_TABLE): New define.
* config/aarch64/aarch64.h (REG_ALLOC_ORDER): New define.
(HONOR_REG_ALLOC_ORDER): Ditto.
(FP_SIMD_SAVED_REGNUM_P): Ditto.
* config/aarch64/aarch64.md (V23_REGNUM) New constant.
(loadwb_pair<TX:mode>_<P:mode>): New instruction.
("storewb_pair<TX:mode>_<P:mode>): Ditto.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gcc-vect-abi.patch
Type: text/x-patch
Size: 13442 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20180723/7372c3a9/attachment.bin>
More information about the Gcc-patches
mailing list