YAHAL
Yet Another Hardware Abstraction Library
Loading...
Searching...
No Matches
pico_int64_ops_aeabi.S
1/*
2 * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7.syntax unified
8.cpu cortex-m0plus
9.thumb
10
11#include "asm_helper.S"
12
13.macro int64_section name
14#if PICO_INT64_OPS_IN_RAM
15.section RAM_SECTION_NAME(\name), "ax"
16#else
17.section SECTION_NAME(\name), "ax"
18#endif
19.endm
20
21int64_section __aeabi_lmul
22
23wrapper_func __aeabi_lmul
24 muls r1, r2
25 muls r3, r0
26 adds r1, r3
27 mov r12, r1
28 lsrs r1, r2, #16
29 uxth r3, r0
30 muls r3, r1
31 push {r4}
32 lsrs r4, r0, #16
33 muls r1, r4
34 uxth r2, r2
35 uxth r0, r0
36 muls r0, r2
37 muls r2, r4
38 lsls r4, r3, #16
39 lsrs r3, #16
40 adds r0, r4
41 pop {r4}
42 adcs r1, r3
43 lsls r3, r2, #16
44 lsrs r2, #16
45 adds r0, r3
46 adcs r1, r2
47 add r1, r12
48 bx lr