diff options
author | Dave Allison <dallison@google.com> | 2013-10-22 17:52:19 -0700 |
---|---|---|
committer | Dave Allison <dallison@google.com> | 2013-11-05 16:48:53 -0800 |
commit | 7020278bce98a0735dc6abcbd33bdf1ed2634f1d (patch) | |
tree | 533cf9a77046a49525d916043a58949e59319f2d /runtime/base | |
parent | 67f128a4023bbbe55827dd2c11ed0538ee387233 (diff) | |
download | art-7020278bce98a0735dc6abcbd33bdf1ed2634f1d.zip art-7020278bce98a0735dc6abcbd33bdf1ed2634f1d.tar.gz art-7020278bce98a0735dc6abcbd33bdf1ed2634f1d.tar.bz2 |
Support hardware divide instruction
Bug: 11299025
Uses sdiv for division and a combo of sdiv, mul and sub for modulus.
Only does this on processors that are capable of the sdiv instruction, as determined
by the build system.
Also provides a command line arg --instruction-set-features= to allow cross compilation.
Makefile adds the --instruction-set-features= arg to build-time dex2oat runs and defaults
it to something obtained from the target architecture.
Provides a GetInstructionSetFeatures() function on CompilerDriver that can be
queried for various features. The only feature supported right now is hasDivideInstruction().
Also adds a few more instructions to the ARM disassembler
b/11535253 is an addition to this CL to be done later.
Change-Id: Ia8aaf801fd94bc71e476902749cf20f74eba9f68
Diffstat (limited to 'runtime/base')
-rw-r--r-- | runtime/base/macros.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/base/macros.h b/runtime/base/macros.h index d00c64a..00a530a 100644 --- a/runtime/base/macros.h +++ b/runtime/base/macros.h @@ -130,6 +130,10 @@ char (&ArraySizeHelper(T (&array)[N]))[N]; #define LIKELY(x) __builtin_expect((x), true) #define UNLIKELY(x) __builtin_expect((x), false) +// Stringify the argument. +#define QUOTE(x) #x +#define STRINGIFY(x) QUOTE(x) + #ifndef NDEBUG #define ALWAYS_INLINE #else |