|
From: <sv...@va...> - 2010-08-09 08:59:32
|
Author: sewardj
Date: 2010-08-09 09:59:22 +0100 (Mon, 09 Aug 2010)
New Revision: 11254
Log:
- add infrastructure to deal with CPSR.Q (sticky saturation flag)
- build system fixes for Ubuntu 10.04
- interworking fix: don't assume the guest entry point address is ARM
Modified:
branches/THUMB/Makefile.all.am
branches/THUMB/Makefile.vex.am
branches/THUMB/coregrind/m_initimg/initimg-linux.c
branches/THUMB/memcheck/mc_machine.c
Modified: branches/THUMB/Makefile.all.am
===================================================================
--- branches/THUMB/Makefile.all.am 2010-08-07 10:39:34 UTC (rev 11253)
+++ branches/THUMB/Makefile.all.am 2010-08-09 08:59:22 UTC (rev 11254)
@@ -155,7 +155,7 @@
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
- $(AM_CFLAGS_BASE)
+ $(AM_CFLAGS_BASE) -marm
AM_CCASFLAGS_ARM_LINUX = $(AM_CPPFLAGS_ARM_LINUX) @FLAG_M32@ -g
AM_FLAG_M3264_PPC32_AIX5 = @FLAG_MAIX32@
Modified: branches/THUMB/Makefile.vex.am
===================================================================
--- branches/THUMB/Makefile.vex.am 2010-08-07 10:39:34 UTC (rev 11253)
+++ branches/THUMB/Makefile.vex.am 2010-08-09 08:59:22 UTC (rev 11254)
@@ -54,8 +54,10 @@
# differently -- with a leading $ on x86/amd64 but none on ppc32/64.
pub/libvex_guest_offsets.h:
rm -f auxprogs/genoffsets.s
- $(CC) $(LIBVEX_CFLAGS) -O -S -o auxprogs/genoffsets.s \
- auxprogs/genoffsets.c
+ $(CC) $(LIBVEX_CFLAGS) \
+ $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
+ -O -S -o auxprogs/genoffsets.s \
+ auxprogs/genoffsets.c
grep xyzzy auxprogs/genoffsets.s | grep define \
| sed "s/xyzzy\\$$//g" \
| sed "s/xyzzy#//g" \
Modified: branches/THUMB/coregrind/m_initimg/initimg-linux.c
===================================================================
--- branches/THUMB/coregrind/m_initimg/initimg-linux.c 2010-08-07 10:39:34 UTC (rev 11253)
+++ branches/THUMB/coregrind/m_initimg/initimg-linux.c 2010-08-09 08:59:22 UTC (rev 11254)
@@ -1026,9 +1026,8 @@
VG_(memset)(&arch->vex_shadow2, 0, sizeof(VexGuestARMState));
arch->vex.guest_R13 = iifii.initial_client_SP;
- // INTERWORKING FIXME: assumes starting in ARM mode
arch->vex.guest_R15T
- = VG_IP_AUX_TO_ENCIN(iifii.initial_client_IP, 0);
+ = iifii.initial_client_IP;
/* This is just EABI stuff. */
// FIXME jrs: what's this for?
Modified: branches/THUMB/memcheck/mc_machine.c
===================================================================
--- branches/THUMB/memcheck/mc_machine.c 2010-08-07 10:39:34 UTC (rev 11253)
+++ branches/THUMB/memcheck/mc_machine.c 2010-08-09 08:59:22 UTC (rev 11254)
@@ -718,6 +718,8 @@
if (o == GOF(CC_NDEP) && sz == 4) return -1; /* slot unused */
+ if (o == GOF(QFLAG32) && sz == 4) return o;
+
//if (o == GOF(SYSCALLNO) && sz == 4) return -1; /* slot unused */
//if (o == GOF(CC) && sz == 4) return -1; /* slot unused */
//if (o == GOF(EMWARN) && sz == 4) return -1; /* slot unused */
@@ -726,6 +728,7 @@
if (o == GOF(FPSCR) && sz == 4) return -1;
if (o == GOF(TPIDRURO) && sz == 4) return -1;
+ if (o == GOF(ITSTATE) && sz == 4) return -1;
if (o >= GOF(D0) && o+sz <= GOF(D0) +SZB(D0)) return GOF(D0);
if (o >= GOF(D1) && o+sz <= GOF(D1) +SZB(D1)) return GOF(D1);
|