<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/148166>148166</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
riscv64: `preserve_mostcc`is not supported
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
folkertdev
</td>
</tr>
</table>
<pre>
see https://godbolt.org/z/13qTn3bTa
```llvm
target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
target triple = "riscv64-unknown-linux-gnu"
define preserve_mostcc void @foo(ptr align 8 %_1) unnamed_addr {
start:
ret void
}
```
Many architectures do support the `preserve_mostcc` calling convention (or at least do not crash on it), e.g. x86, aarch64, arm, wasm, s390x and powerpc.
This came up in https://github.com/rust-lang/rust/issues/143319
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8U8FuhDYQ_ZrhMmJlbPDCgQPpam89NffI2LPgxtjUNrtJv76CTZsqqipZzJPRvDd686xSspMn6qF5geZSqC3PIfa34N4pZkP3Ygzms09EOOe8JhAD8Cvw6xTMGFw-hTgBv_4J_FqJP169GF8VsGE_kj2Pc_cF2JBVnCijUVk59Rm2jCAuCJxTuYAYqFxBDLI-PqX9B1S8BTFUvC294M-73_Y7zr85c7Sro7_5ok36Luty8-8-PHzprN8-yslvzx5gg6Gb9YRrpETxTm9LSFlrvAdrEGp2CwF4u-aIytnJY4vAm7cKeIeb92oh86aMiQjnF2BDyirm3RY2IEbKB82uc77824Wn8q_Kf6KKeraZdN4iJTQB07auIWbMMyFI9mMukAy1cs76CXXwd_LZBo_A2xBRZXSkUt5pfMioo0ozBo82A--A_4J0mk740codq11a1geMy14eKh01iY59oPIG1_CguOoTPid-nW1CrRbCbUXrf6bA5nkbTzoswK9xS7l0yk9fGPjVprRR2sNRC1F1hemF6USnCuqrc8M5b2Qli7lvxlHWUlT6LHljdNvW1GhFrW5G1d26sbA9Z7xh56piHWeVPN3U-SzkjYnbOHaaj1AzWpR1pz1ueyqLQ7uv6raSsnBqJJeOlHPu6YHH3z0RzaWI_d5UjtuUoGbOppy-abLNjvqvUIEY_ntDNh32f22STLFF1_-PV8ejeJZyjeF30j_sOqa-9_yvAAAA__8C_iKd">