[Chapel Merge] Make sure to set the alignstack when applicable for direct args

Branch: refs/heads/main
Revision: 5e59c37ca574f2840a70e31cc3f4b899865c217b
Author: jabraham17
Link: Make sure to set the alignstack when applicable for direct args by jabraham17 · Pull Request #28994 · chapel-lang/chapel · GitHub
Log Message:
Make sure to set the alignstack when applicable for direct args (#28994)

Adjusts our ABI code to set the alignstack when applicable, based on the
alignment of the type. The implemented logic matches what clang does.

For most cases, this is a no-op, but it does affect aarch64 linux

  • paratest
  • check aarch64 test passes

[Reviewed by @arifthpe]

Compare: Comparing 6f8628ef7d9365e74622a0ba3521e7913cd2c9d2...272e933e68d848d5c7bc18c4726007fc0d9f8f5f · chapel-lang/chapel · GitHub

Diff:
M compiler/codegen/cg-symbol.cpp
M test/llvm/abi/aarch64-linux/export-vs-c.good
https://github.com/chapel-lang/chapel/pull/28994.diff