| Line 29... |
Line 29... |
| 29 |
|
29 |
|
| 30 |
|
30 |
|
| 31 |
int __clzsi2(int arg) __attribute__((naked,noinline));
|
31 |
int __clzsi2(int arg) __attribute__((naked,noinline));
|
| 32 |
int __clzsi2(int arg)
|
32 |
int __clzsi2(int arg)
|
| 33 |
{
|
33 |
{
|
| 34 |
__asm__ volatile("ldr\tr12, =__emcore_syscall\n\tldr\tr12, [r12]\n\tldr\tpc, [r12,#8]\n\t");
|
34 |
__asm__ volatile("ldr\tr12, =__emcore_syscall\n\tldr\tr12, [r12]\n\tldr\tpc, [r12,#8]\n\t.ltorg\n\t");
|
| 35 |
}
|
35 |
}
|
| 36 |
|
36 |
|
| 37 |
// This one has a non-standard calling convention, so we just declare it as void
|
37 |
// This one has a non-standard calling convention, so we just declare it as void
|
| 38 |
void __aeabi_idivmod(void) __attribute__((naked,noinline));
|
38 |
void __aeabi_idivmod(void) __attribute__((naked,noinline));
|
| 39 |
void __aeabi_idivmod(void)
|
39 |
void __aeabi_idivmod(void)
|
| 40 |
{
|
40 |
{
|
| 41 |
__asm__ volatile("ldr\tr12, =__emcore_syscall\n\tldr\tr12, [r12]\n\tldr\tpc, [r12,#0xc]\n\t");
|
41 |
__asm__ volatile("ldr\tr12, =__emcore_syscall\n\tldr\tr12, [r12]\n\tldr\tpc, [r12,#0xc]\n\t.ltorg\n\t");
|
| 42 |
}
|
42 |
}
|
| 43 |
|
43 |
|
| 44 |
// This one has a non-standard calling convention, so we just declare it as void
|
44 |
// This one has a non-standard calling convention, so we just declare it as void
|
| 45 |
void __aeabi_uidivmod(void) __attribute__((naked,noinline));
|
45 |
void __aeabi_uidivmod(void) __attribute__((naked,noinline));
|
| 46 |
void __aeabi_uidivmod(void)
|
46 |
void __aeabi_uidivmod(void)
|
| 47 |
{
|
47 |
{
|
| 48 |
__asm__ volatile("ldr\tr12, =__emcore_syscall\n\tldr\tr12, [r12]\n\tldr\tpc, [r12,#0x10]\n\t");
|
48 |
__asm__ volatile("ldr\tr12, =__emcore_syscall\n\tldr\tr12, [r12]\n\tldr\tpc, [r12,#0x10]\n\t.ltorg\n\t");
|
| 49 |
}
|
49 |
}
|
| 50 |
|
50 |
|
| 51 |
extern __attribute__((alias("__aeabi_idivmod"))) void __aeabi_idiv(void);
|
51 |
extern __attribute__((alias("__aeabi_idivmod"))) void __aeabi_idiv(void);
|
| 52 |
extern __attribute__((alias("__aeabi_uidivmod"))) void __aeabi_uidiv(void);
|
52 |
extern __attribute__((alias("__aeabi_uidivmod"))) void __aeabi_uidiv(void);
|
| 53 |
|
53 |
|