|
From: <sv...@va...> - 2009-12-30 20:23:23
|
Author: sewardj
Date: 2009-12-30 20:23:05 +0000 (Wed, 30 Dec 2009)
New Revision: 10976
Log:
On ARM: handle TPIDRURO (TLS pointer) register for origin tracking.
Modified:
branches/ARM/Makefile.all.am
branches/ARM/coregrind/m_libcprint.c
branches/ARM/memcheck/mc_machine.c
Modified: branches/ARM/Makefile.all.am
===================================================================
--- branches/ARM/Makefile.all.am 2009-12-30 20:22:02 UTC (rev 10975)
+++ branches/ARM/Makefile.all.am 2009-12-30 20:23:05 UTC (rev 10976)
@@ -89,7 +89,7 @@
-Wstrict-prototypes \
-Wmissing-declarations \
@FLAG_W_NO_FORMAT_ZERO_LENGTH@ \
- -fno-strict-aliasing
+ -fno-strict-aliasing -O
# These flags are used for building the preload shared objects.
# The aim is to give reasonable performance but also to have good
Modified: branches/ARM/coregrind/m_libcprint.c
===================================================================
--- branches/ARM/coregrind/m_libcprint.c 2009-12-30 20:22:02 UTC (rev 10975)
+++ branches/ARM/coregrind/m_libcprint.c 2009-12-30 20:23:05 UTC (rev 10976)
@@ -470,6 +470,8 @@
/* Cache the results of getpid just once, so we don't have to call
getpid once for each line of text output. */
+ b->my_pid = -1; /* LATER: cacheing is confusing in presence of fork(),
+ disable for now. */
if (UNLIKELY(b->my_pid == -1)) {
b->my_pid = VG_(getpid)();
vg_assert(b->my_pid >= 0);
Modified: branches/ARM/memcheck/mc_machine.c
===================================================================
--- branches/ARM/memcheck/mc_machine.c 2009-12-30 20:22:02 UTC (rev 10975)
+++ branches/ARM/memcheck/mc_machine.c 2009-12-30 20:23:05 UTC (rev 10976)
@@ -724,7 +724,8 @@
//if (o == GOF(TISTART) && sz == 4) return -1; /* slot unused */
//if (o == GOF(NRADDR) && sz == 4) return -1; /* slot unused */
- if (o == GOF(FPSCR) && sz == 4) return -1;
+ if (o == GOF(FPSCR) && sz == 4) return -1;
+ if (o == GOF(TPIDRURO) && sz == 4) return -1;
if (o >= GOF(D0) && o+sz <= GOF(D0) +SZB(D0)) return -1;
if (o >= GOF(D1) && o+sz <= GOF(D1) +SZB(D1)) return -1;
|