https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117831
Huaqi <fanghuaqi at vip dot qq.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |fanghuaqi at vip dot qq.com
--- Comment #5 from Huaqi <fanghuaqi at vip dot qq.com> ---
(In reply to Xi Ruoyao from comment #3)
> You are misreading the disassembly. We actually have
>
> 42: 00000097 auipc ra,0x0
> 42: R_RISCV_CALL_PLT __muldi3
> 42: R_RISCV_RELAX *ABS*
> 46: 000080e7 jalr ra # 42 <.L3+0xa>
>
> so it's calling a function, not a dead loop. It's just the actual address
> of the function has not be filled in (the linker should do it) yet.
Hi Ruoyao,
I think `mul_u64` is used to replace the libgcc's implementation `__muldi3`,
which means it should not expect there is a `__muldi3` and call it, how can I
achieve to compile this code and generate correct asm code, without calling
libgcc's `__muldi3`