FreeCalypso > hg > freecalypso-sw
comparison target-utils/libbase/osmodelay.S @ 991:5cff3579814c
target-utils: libbase factored out of libcommon
The library dependency order is now strictly unidirectional
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Wed, 30 Dec 2015 20:48:12 +0000 |
parents | target-utils/libcommon/osmodelay.S@07b686248ab7 |
children |
comparison
equal
deleted
inserted
replaced
990:2a867e5768e9 | 991:5cff3579814c |
---|---|
1 /* | |
2 * This assembly module provides a replica of OsmocomBB's bogo-millisecond | |
3 * delay_ms() function. It is literally a copy of what OsmocomBB's delay_ms() | |
4 * compiles to with their gcc version and their optimization settings, as seen | |
5 * by doing arm-elf-objdump on their lib/delay.o. | |
6 * | |
7 * This hack is intended for those cases where we have to copy OsmocomBB's | |
8 * black magic voodoo operations with no ability to understand what is actually | |
9 * needed, such as SPCA552E initialization on the Pirelli DP-L10. | |
10 */ | |
11 | |
12 .text | |
13 .code 32 | |
14 .globl osmo_delay_ms | |
15 osmo_delay_ms: | |
16 mov r3, #0 | |
17 sub sp, sp, #4 | |
18 str r3, [sp] | |
19 ldr r3, =1300 | |
20 mul r3, r0, r3 | |
21 b 2f | |
22 1: ldr r2, [sp] | |
23 ldr r2, [sp] | |
24 add r2, r2, #1 | |
25 str r2, [sp] | |
26 2: ldr r2, [sp] | |
27 cmp r2, r3 | |
28 bcc 1b | |
29 add sp, sp, #4 | |
30 bx lr |