From 848f70a3d73833fc1bf3032a9ff6812e429661d9 Mon Sep 17 00:00:00 2001 From: Jeff Hao Date: Wed, 15 Jan 2014 13:49:50 -0800 Subject: Replace String CharArray with internal uint16_t array. Summary of high level changes: - Adds compiler inliner support to identify string init methods - Adds compiler support (quick & optimizing) with new invoke code path that calls method off the thread pointer - Adds thread entrypoints for all string init methods - Adds map to verifier to log when receiver of string init has been copied to other registers. used by compiler and interpreter Change-Id: I797b992a8feb566f9ad73060011ab6f51eb7ce01 --- runtime/thread.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'runtime/thread.h') diff --git a/runtime/thread.h b/runtime/thread.h index 35b785df63..e766daabed 100644 --- a/runtime/thread.h +++ b/runtime/thread.h @@ -541,6 +541,16 @@ class Thread { } public: + static uint32_t QuickEntryPointOffsetWithSize(size_t quick_entrypoint_offset, + size_t pointer_size) { + DCHECK(pointer_size == 4 || pointer_size == 8) << pointer_size; + if (pointer_size == 4) { + return QuickEntryPointOffset<4>(quick_entrypoint_offset).Uint32Value(); + } else { + return QuickEntryPointOffset<8>(quick_entrypoint_offset).Uint32Value(); + } + } + template static ThreadOffset QuickEntryPointOffset(size_t quick_entrypoint_offset) { return ThreadOffsetFromTlsPtr( @@ -911,6 +921,8 @@ class Thread { void PushVerifier(verifier::MethodVerifier* verifier); void PopVerifier(verifier::MethodVerifier* verifier); + void InitStringEntryPoints(); + private: explicit Thread(bool daemon); ~Thread() LOCKS_EXCLUDED(Locks::mutator_lock_, -- cgit v1.2.3