ARM Overview: Difference between revisions

Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content deleted Content added
Pancakes (talk | contribs)
m added links to source for libgcc and division function
Pancakes (talk | contribs)
m added link to page for libgcc
Line 249: Line 249:
==Coding Gotchas==
==Coding Gotchas==
===== Missing Division Functions (__aeabi_uidivmod, __aeabi_idiv) / No Division Support =====
===== Missing Division Functions (__aeabi_uidivmod, __aeabi_idiv) / No Division Support =====
This is caused by using GCC and not linking with ''libgcc''. You must also make sure you use the ''libgcc'' that has been compiled for your target machine/architecture/platform. See [Libgcc] for more information.
This issue is actually complicated because different CPUs may not support hardware division, support it only through the floating point operations, in thumb mode, in native mode, or a combination. Also, in certain situations you may find it faster or more compact to use different methods because you may be interested in code size or performance.

This issue is actually complicated because different CPUs may not support hardware division, support it only through the floating point operations, in thumb mode, in native mode, or a combination. Also, in certain situations you may find it faster or more compact to use different methods because you may be interested in code size or performance. Normally, ''libgcc'' will handle all of these situations and provide the needed symbols, however here are some various sources of information that can give you a more in-depth understanding:


The following links talk about different methods in handling this problem:
The following links talk about different methods in handling this problem: