<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/54262>54262</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
An error cause by inline a asm-function
</td>
</tr>
<tr>
<th>Labels</th>
<td>
bug,
backend:RISC-V
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ZCBing
</td>
</tr>
</table>
<pre>
I try to compile with "clang --target=riscv64 -d -O1 bug.c"
```
static inline int syscall(int nr, int rc)
{
asm volatile("addi a0, %0, 0" :: "r"(nr) );
asm volatile("addi a1, %0, 0" :: "r"(rc) );
asm volatile("ecall");
return 0;
}
int main()
{
int nr = 0, rc = CORE_ID();
if (rc != 0)
goto out;
printf("xxx\n");
rc = 88;
out:
syscall(nr, rc);
return 0;
}
```
and I get asm with objdump
```
0000000000000002 <main>:
2: 41 11 addi sp, sp, -16
4: 06 e4 sd ra, 8(sp)
6: 97 00 00 00 auipc ra, 0
a: e7 80 00 00 jalr ra
e: 01 e1 bnez a0, 0xe <main+0xc>
10: 37 05 00 00 lui a0, 0
14: 13 05 05 00 mv a0, a0
18: 97 00 00 00 auipc ra, 0
1c: e7 80 00 00 jalr ra
20: 13 05 80 05 addi a0, zero, 88
0000000000000024 <.LBB0_2>:
24: 01 45 mv a0, zero
26: aa 85 mv a1, a0
28: 73 00 00 00 ecall
2c: 01 45 mv a0, zero
2e: a2 60 ld ra, 8(sp)
30: 41 01 addi sp, sp, 16
32: 82 80 ret
```
notice that
```
24: 01 45 mv a0, zero
26: aa 85 mv a1, a0
28: 73 00 00 00 ecall
```
before ecall a0 and a1 are both zero, this is an obvious mistake.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNVkuP2yAQ_jXOZZQI4_fBh02ylVaqtFIr9dBLhTFO2BI7Apxm--s74DzsbNTu3oqQgTCPb74ZIFVXv5ZPYPUr2A54t9tLJeCXtFsIKOWKtRuYzy3TG2GDaK2l4Yc0hnkN8-cQqn6z4CgXkHVAHoKUnLpfGsus5CBbJVuBgwXzajhTKqC5W7U6oCv_u0YbxclGthwmgI2ZHRw6hWaUQCV0xOpaAiNOMaCJH_FDIYgesDvI2sGhuTNegDMbvcNg-G-DHuM7DIohQjqWvMprYXvdoovLVrYeJo6HHZOtt3KPjIEyBLYGD1NzP189f3n88bQ-qb31KBvw6PEbnnSL665rmw4z3_X2jvJeo9dmCOx4PAbJqr0JzQc1IMnzGwve5sjaNf1D6oe0f4SkmwpjbQ1PgJXp8-CLtqte6n63vytOps0leeUpjx4nOLFRl_w4hDA8swS-UlwUe4d9-M7DdKIWOzWSgogvaqYeRs2cAhKZO9VpClKnVmRAyKmjt17u-UWNTMSZExcZ5FfxF6b0yctYUng8IYhrGFUrfnsjQ60fxYUFuiRH7rgYWQiJsxAhtOTiS_USRhYm4p6AMPLiySC-O8BInE3l8w9FHvL3Rk7JFYgTTkYJHID8FrrzGcnH5XdTIbEjZ_F5uSQ_6NsqofGJ3ji50DuN1jsZa_hMMwb5HY3wLT_U85NFY36GC2YsxD8Mw9cFo5CSi4b6d51G5HQqyN9PxfRQRP4s5dTl4dzwhN89oW2HL4YAu2UW7gr8J8TfoKpE02kxCDgE4C4mFgLDH6sOb6VzsdmtNICdtXhRHWTXG9hJfCd_isW4Ct9-Z3UZ1UVUsJmVVonyoQWhdaeBs96gk9fzM8vcVThv-pZb2bWzXqtya-3euNKln7Bv8JbsqwW-9LhQ6nAe5nvdvQhucSmN6YXBSRLTlM62JS8EI0WTZxGCyHhTJSyLq4wVjNOoqdKZYpVQpgySJT4P-KfAPxLuRaUV4z9FW6P7L09fV_NvbidZz2RJCaUkIjkONEoXTZIWNIwLWjQRZ6IOYiLwVlILh23R6c1Mlx4mWje4qZA2c91kxshNK4SHgPZZb7edLr-vlrLdzHxApY_mD9iPNR4">