^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) ;; SPDX-License-Identifier: GPL-2.0-or-later
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) ;; Copyright 2010 Free Software Foundation, Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ;; Contributed by Bernd Schmidt <bernds@codesourcery.com>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) ;;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #include <linux/linkage.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) .text
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) ENTRY(__c6xabi_divremi)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) stw .d2t2 B3, *B15--[2]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) || cmpgt .l1 0, A4, A1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) || cmpgt .l2 0, B4, B2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) || mv .s1 A4, A5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) || call .s2 __c6xabi_divu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) [A1] neg .l1 A4, A4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) || [B2] neg .l2 B4, B4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) || xor .s2x B2, A1, B0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) || mv .d2 B4, B2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) [B0] addkpc .s2 _divu_ret_1, B3, 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) [!B0] addkpc .s2 _divu_ret_2, B3, 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) nop 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) _divu_ret_1:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) neg .l1 A4, A4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) _divu_ret_2:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) ldw .d2t2 *++B15[2], B3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) mpy32 .m1x A4, B2, A6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) nop 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) ret .s2 B3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) sub .l1 A5, A6, A5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) nop 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) ENDPROC(__c6xabi_divremi)