From 3364f57d0bf5f31f91d5b1214a7a7b17e975c049 Mon Sep 17 00:00:00 2001 From: Zihao Yu Date: Sat, 17 Jul 2021 21:53:21 +0800 Subject: [PATCH] klib,int64: fix dead recursion for riscv64-mycpu * symbols inside int64.c are local to __udivmoddi4 --- klib/src/int64.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/klib/src/int64.c b/klib/src/int64.c index 51401f8..3254040 100644 --- a/klib/src/int64.c +++ b/klib/src/int64.c @@ -363,6 +363,7 @@ uint32_t __inline __builtin_clzll(uint64_t value) { #include +#if !defined(__riscv) || defined(__riscv_m) /* Returns: a / b */ COMPILER_RT_ABI di_int @@ -410,6 +411,17 @@ __udivdi3(du_int a, du_int b) return __udivmoddi4(a, b, 0); } +/* Returns: a % b */ + +COMPILER_RT_ABI du_int +__umoddi3(du_int a, du_int b) +{ + du_int r; + __udivmoddi4(a, b, &r); + return r; +} +#endif + COMPILER_RT_ABI du_int __udivmoddi4(du_int a, du_int b, du_int* rem) @@ -621,16 +633,6 @@ __udivmoddi4(du_int a, du_int b, du_int* rem) return q.all; } -/* Returns: a % b */ - -COMPILER_RT_ABI du_int -__umoddi3(du_int a, du_int b) -{ - du_int r; - __udivmoddi4(a, b, &r); - return r; -} - // Returns: the number of leading 0-bits // Precondition: a != 0