tree 21d1c2c593a87c47aae236b34ff5bf35e7972490
parent fdf20941a8f95b26578fbeb579019f74efe45545
author Hans Wennborg <hans@hanshq.net> 1744118728 +0200
committer GitHub <noreply@github.com> 1744118728 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJn9SPICRC1aQ7uu5UhlAAAzFwQAGDknzj1QHVd4V+o63bL0or5
 7UgPTQirNcW8tUGwpuX48bU3VUlpq18UOzrb6VxB9c05vdUjziBXxdR3yhm/MImx
 1kHcAkPdHobw2rv1iqmj/6RNyfqDR474lIUOoGO7NspPLQpGAAXm4GnP5LO7l6Ml
 S5BrQLmayPyC3HSQSATB9P7Laf9QOeaDykKQOYI8l/Hobz86ENVFbJIozl3L49P2
 IigIgTnGS5Sis2OXuv5fehdN/o3x3g36fqhfQtHL0fnoqJWzPmr/BzAsr7Tc7W/F
 bW/EK2P1O60TQu1vesmZ/sbZOSYGXaVl4LkbCtw0PrEA5nriD/cqNvZbed0qdBRq
 Xy3LB8PfQtUGVEB/ZUrkvjQd1rM2KU/K7RJXYUY5PAssbtqdz4hPkKjeSjeWRkcF
 T3KtiXlHQ3AvRF8UPHai2tsreBJ9fyEKZuKq/VqrBUU7OiyPCrC4Kg3jiLtwhPrT
 KK5Oc2Rz7cQGqCJkGhNpQXNnCqZFWmHXIroFth9fbT/OQAzDs9zWRZ2lrRHMvafX
 5yIOsDDM5uc7H8Y3hYrcTP72j732ETkFVi8c/cvwfjLcYafTH8Sfu1m2XhBCkqye
 lljpGf1FeA+cLJ3qIDwizs1OY0p1rGWgJK+Sl9Nu5xK7IJqqkYiHoubi//WWkTm2
 f+R27RBTwjeL+J2cXztA
 =HAkr
 -----END PGP SIGNATURE-----
 

[win/arm64] Enable tail call with inreg arguments when possible (#134671)

Tail calls were disabled from callers with inreg parameters in 5dc8aeb
with a fixme to check if the callee also takes an inreg parameter.

The issue is that inreg parameters (which are passed in x0 or x1 for
free and member functions respectively) are supposed to be returned (in
x0) at the end of the function. In case of a tail call, that means the
callee needs to return the same value as the caller would.

We can check for that case, and it's not as niche as it sounds, as
that's how Clang will lower one function with an sret return value
calling another, such as:

```
struct T { int x; };
struct S {
    T foo();
    T bar();
};
T S::foo() { return bar(); } // foo's sret argument will get passed directly to bar
```

Fixes #133098