Support the __regcall calling convention. This calling convention passes integer
parameters in GPRs, and uses all XMM/YMM registers when passing vector/FP arguments.
- See Intel Vector Function ABI document for details
- No 32-bit support
- Vector tests for integers only; more tests to come
Adding x86-64 regcall calling convention tests, include

- i8, i32, i64, pointers
- float, double, x86_fp80, fp128
- tests for extended precision integers are NOT included yet
Use XMM0-15 and YMM0-15 for passing all vector/FP types in __regcall calling convention
Set the call preserved mask for __regcall

- register spills will be eliminated if a __regcall function
  calls another __regcall function.

- related tests enabled.
Allow __regcall for tail calls
Implement X86-64 regcall return value

- Add tests for SSE, AVX and AVX2.

- 256 bit integer or pointer vectors are passed in YMM registers
  not XMM registers as required. This needs to be fixed.
Fix regcall tests on Darwin
Minor cleanup, no functionality changes
Implement a regcall CSR rule

- Callee saved registers presever their values across a
  __regcall as long as they were not used for passing a
  parameter or returning a value.

- added X86-64 tests
Implement 32 bit regcall
AVX and AVX2 tests for regcall with vector arguments