OSDN Git Service

Fix the definition of THREAD_CURRENT_IBASE_OFFSET.
authorRoland Levillain <rpl@google.com>
Fri, 8 Jul 2016 13:21:44 +0000 (14:21 +0100)
committerRoland Levillain <rpl@google.com>
Fri, 8 Jul 2016 13:59:08 +0000 (14:59 +0100)
The difference between between
art::Thread::tlsPtr_.mterp_current_ibase and
art::Thread::tlsPtr_.thread_local_objects is sizeof(size_t),
not sizeof(void*) (even if they have the same value on all
supported platforms/compilers in practice).

Test: ART host tests.
Change-Id: I70d196732499bd0cd073983de564547d08ee59ef

runtime/asm_support.h

index 2d702f6..da68923 100644 (file)
@@ -140,7 +140,7 @@ ADD_TEST_EQ(THREAD_LOCAL_END_OFFSET,
 ADD_TEST_EQ(THREAD_LOCAL_OBJECTS_OFFSET,
             art::Thread::ThreadLocalObjectsOffset<__SIZEOF_POINTER__>().Int32Value())
 // Offset of field Thread::tlsPtr_.mterp_current_ibase.
-#define THREAD_CURRENT_IBASE_OFFSET (THREAD_LOCAL_OBJECTS_OFFSET + __SIZEOF_POINTER__)
+#define THREAD_CURRENT_IBASE_OFFSET (THREAD_LOCAL_OBJECTS_OFFSET + __SIZEOF_SIZE_T__)
 ADD_TEST_EQ(THREAD_CURRENT_IBASE_OFFSET,
             art::Thread::MterpCurrentIBaseOffset<__SIZEOF_POINTER__>().Int32Value())
 // Offset of field Thread::tlsPtr_.mterp_default_ibase.