[SystemZ] Add support for anyregcc calling convention
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Fri, 2 Mar 2018 20:40:11 +0000 (20:40 +0000)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Fri, 2 Mar 2018 20:40:11 +0000 (20:40 +0000)
commit8b19be46c770754cbeb4c8990c2cae0773203904
tree8b0b619af9b45e5c748af94b27ebf7bbe8bd2fed
parent5eb64110d241cf2506f54ade3c2693beed42dd8f
[SystemZ] Add support for anyregcc calling convention

This adds back-end support for the anyregcc calling convention
for use with patchpoints.

Since all registers are considered call-saved with anyregcc
(except for 0 and 1 which may still be clobbered by PLT stubs
and the like), this required adding support for saving and
restoring vector registers in prologue/epilogue code for the
first time.  This is not used by any other calling convention.

llvm-svn: 326612
llvm/lib/Target/SystemZ/SystemZCallingConv.td
llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp
llvm/test/CodeGen/SystemZ/anyregcc-novec.ll [new file with mode: 0644]
llvm/test/CodeGen/SystemZ/anyregcc-vec.ll [new file with mode: 0644]
llvm/test/CodeGen/SystemZ/anyregcc.ll [new file with mode: 0644]