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/utils.h | |
parent | 67f128a4023bbbe55827dd2c11ed0538ee387233 (diff) | |
download | android_art-7020278bce98a0735dc6abcbd33bdf1ed2634f1d.tar.gz android_art-7020278bce98a0735dc6abcbd33bdf1ed2634f1d.tar.bz2 android_art-7020278bce98a0735dc6abcbd33bdf1ed2634f1d.zip |
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/utils.h')
-rw-r--r-- | runtime/utils.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/runtime/utils.h b/runtime/utils.h index 51035b697f..6850e8b025 100644 --- a/runtime/utils.h +++ b/runtime/utils.h @@ -252,7 +252,7 @@ std::string FormatDuration(uint64_t nano_duration, TimeUnit time_unit); // Get the appropriate unit for a nanosecond duration. TimeUnit GetAppropriateTimeUnit(uint64_t nano_duration); -// Get the divisor to convert from a nanoseconds to a time unit +// Get the divisor to convert from a nanoseconds to a time unit. uint64_t GetNsToTimeUnitDivisor(TimeUnit time_unit); // Performs JNI name mangling as described in section 11.3 "Linking Native Methods" @@ -326,6 +326,9 @@ void InitTimeSpec(bool absolute, int clock, int64_t ms, int32_t ns, timespec* ts // strings. Empty strings will be omitted. void Split(const std::string& s, char separator, std::vector<std::string>& result); +// Trims whitespace off both ends of the given string. +std::string Trim(std::string s); + // Joins a vector of strings into a single string, using the given separator. template <typename StringT> std::string Join(std::vector<StringT>& strings, char separator); @@ -354,10 +357,10 @@ void DumpNativeStack(std::ostream& os, pid_t tid, const char* prefix = "", bool // Dumps the kernel stack for thread 'tid' to 'os'. Note that this is only available on linux-x86. void DumpKernelStack(std::ostream& os, pid_t tid, const char* prefix = "", bool include_count = true); -// Find $ANDROID_ROOT, /system, or abort +// Find $ANDROID_ROOT, /system, or abort. const char* GetAndroidRoot(); -// Find $ANDROID_DATA, /data, or abort +// Find $ANDROID_DATA, /data, or abort. const char* GetAndroidData(); // Returns the dalvik-cache location, or dies trying. |