Commit Graph

57 Commits

Author SHA1 Message Date
Carl Love
8db3f9d608 Power PC test suite for ISA 3.0, part 4
The test suite support for the Power PC ISA 3.0 instructions added in
VEX commit 3222 is added in this commit.

Note, this is part 4 of 5.  The NEWS file will be updated when the ISA 3.0
support is complete.

valgrind bugzilla 363858


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15896
2016-06-29 18:09:57 +00:00
Carl Love
47216ba855 Add the HW register support for missing registers in get_otrack_shadow_offset_wrk(). The registers are: NRADDR, NRADDR_GPR2, (REDIR_STACK, TFHAR, TEXASR, TEXASRU, TFIAR, PPR, PSPB.
Bugzilla  36728

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15895
2016-06-27 15:50:29 +00:00
Carl Love
e33db5dc56 Power PC Add test suite support for ISA 3.0, part 1, fixes to memcheck
This is a fix for memchech/mc_machine.c found by the nightly regression
test.  The fix is for valgrind commit 15837

valgrind bugzilla 359767



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15841
2016-03-30 20:09:26 +00:00
Julian Seward
adc2dafee9 Update copyright dates, to include 2015. No functional change.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15577
2015-08-21 11:32:26 +00:00
Julian Seward
082f9298a1 Add a port to Linux/TileGx. Zhi-Gang Liu (zliu@tilera.com)
Valgrind aspects, to match vex r3124.

See bug 339778 - Linux/TileGx platform support to Valgrind



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15080
2015-04-10 12:30:09 +00:00
Florian Krohm
d485eed8e0 Fix a few compiler warnings issued by clang 3.6.0
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14969
2015-02-28 09:22:09 +00:00
Philippe Waroquiers
70a8ef051c Fix 197259 Unsupported arch_prtctl PR_SET_GS option
(valgrind side).
In summary: we were counting somewhat on the luck for FS,
we now similarly count on luch for GS
See VEX commit log r3043 for more details.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14815
2014-12-17 00:00:11 +00:00
Florian Krohm
2891e3ceaa Followup to r14600. Copy the contents of pub_core_guest.h to pub_tool_guest.h
to make it available to tools. This allows to remove quite a bit of
ifdeffery from memcheck's mc_machine.c


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14601
2014-10-06 21:04:14 +00:00
Florian Krohm
53181b0933 Move the endianess test for ppc64 to the correct place.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14465
2014-09-05 14:49:17 +00:00
Philippe Waroquiers
92644a67a7 Fix a bunch of defined(VGA_ppc64)
(a.o. this was making leak_cpp_interior test failing,
as the ppc64 specific code in mc_leakcheck.c was not compiled in)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14379
2014-08-28 21:02:11 +00:00
Carl Love
98908947c7 This commit is for Bugzilla 334834. The Bugzilla contains patch 2 of 3
to add PPC64 LE support.  The other two patches can be found in Bugzillas
334384 and 334836.

POWER PC, add the functional Little Endian support, patch 2 

The IBM POWER processor now supports both Big Endian and Little Endian.
The ABI for Little Endian also changes.  Specifically, the function
descriptor is not used, the stack size changed, accessing the TOC
changed.  Functions now have a local and a global entry point.  Register
r2 contains the TOC for local calls and register r12 contains the TOC
for global calls.  This patch makes the functional changes to the
Valgrind tool.  The patch makes the changes needed for the
none/tests/ppc32 and none/tests/ppc64 Makefile.am.  A number of the
ppc specific tests have Endian dependencies that are not fixed in
this patch.  They are fixed in the next patch.

Per Julian's comments renamed coregrind/m_dispatch/dispatch-ppc64-linux.S
to coregrind/m_dispatch/dispatch-ppc64be-linux.S  Created new file for LE
coregrind/m_dispatch/dispatch-ppc64le-linux.S.  The same was done for
coregrind/m_syswrap/syscall-ppc-linux.S.

Signed-off-by: Carl Love <carll@us.ibm.com>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14239
2014-08-07 23:35:54 +00:00
Carl Love
914f75de32 This commit is for Bugzilla 334384. The Bugzilla contains patch 1 of 3
to add PPC64 LE support.  The other two patches can be found in Bugzillas
334834 and 334836.  The commit does not have a VEX commit associated with it.

POWER PC, add initial Little Endian support

The IBM POWER processor now supports both Big Endian and Little Endian.
This patch renames the #defines with the name ppc64 to ppc64be for the BE
specific code.  This patch adds the Little Endian #define ppc64le to the

Additionally, a few functions are renamed to remove BE from the name if the
function is used by BE and LE. Functions that are BE specific have BE put
in the name.

The goals of this patch is to make sure #defines, function names and
variables consistently use PPC64/ppc64 if it refers to BE and LE,
PPC64BE/ppc64be if it is specific to BE, PPC64LE/ppc64le if it is LE
specific.  The patch does not break the code for PPC64 Big Endian.

The test files memcheck/tests/atomic_incs.c, tests/power_insn_available.c
and tests/power_insn_available.c are also updated to the new #define
definition for PPC64 BE.

Signed-off-by: Carl Love <carll@us.ibm.com>


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14238
2014-08-07 23:17:29 +00:00
Julian Seward
b67bf56fb6 Track vex r2894 (representation changes to arm64 FPSR)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14120
2014-06-28 22:12:34 +00:00
Julian Seward
f7058ba74b Renaming only (no functional change): rename IR artefacts to do
with i-cache invalidation to be more consistent with new d-cache
flushing functionality, so as to track changes in Vex r2852:
  Ijk_TInval          -> Ijk_InvalICache
  TISTART             -> CMSTART (CM == "Cache Management")
  TILEN               -> CMLEN
  VEX_TRC_JMP_TINVAL  -> VEX_TRC_JMP_INVALICACHE



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13934
2014-05-04 10:54:08 +00:00
Julian Seward
9e320cfacb ARM64: add support for cache management instructions (Valgrind side):
dc cvau, regX
  ic ivau, regX
  mrs regX, ctr_el0
Fixes #333228 and #333230.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13931
2014-05-03 21:22:55 +00:00
Julian Seward
9be796fe75 Make origin tracking work on arm64.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13893
2014-04-08 15:26:12 +00:00
Julian Seward
e45807708a Fill in a (very) few cases for get_otrack_shadow_offset_wrk on arm64.
Apparently needed for generating some kinds of error messages, even
when not doing origin tracking, strangely enough.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13841
2014-02-27 11:15:58 +00:00
Julian Seward
3f6d211236 Add support for ARMv8 AArch64 (the 64 bit ARM instruction set).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13770
2014-01-12 12:54:00 +00:00
Julian Seward
dbf9b63605 Update copyright dates (20XY-2012 ==> 20XY-2013)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13658
2013-10-18 14:27:36 +00:00
Dejan Jevtic
78ae0356c4 mips32: Add support for mips32 DSP instruction set.
Add support for mips32 DSP and DSP revision 2 ASE.
More details about the mips32 DSP(r2) ASE:
http://www.mips.com/media/files/MD00566-2B-MIPSDSP-QRC-01.00.pdf
Applied patch provided by Maja Gagic <maja.gagic@rt-rk.com>



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13470
2013-07-25 08:22:08 +00:00
Florian Krohm
7b5334ad4c s390x: The CC_DEP1 field is accessed as a whole or bits [0:31]
in case the field holds a 32-bit floating point value.
Patch by Maran Pakkirisamy (maranp@linux.vnet.ibm.com).
Part of fixing BZ 307113.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13413
2013-05-31 15:44:06 +00:00
Petar Jovanovic
5dd4c02e39 mips: adding MIPS64LE support to Valgrind
Necessary changes to Valgrind to support MIPS64LE on Linux.
Minor cleanup/style changes embedded in the patch as well.
The change corresponds to r2687 in VEX.
Patch written by Dejan Jevtic and Petar Jovanovic.

More information about this issue:
https://bugs.kde.org/show_bug.cgi?id=313267


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13292
2013-02-27 23:17:33 +00:00
Julian Seward
d120d46f76 get_otrack_shadow_offset_wrk: amd64: add a (very rare) missing case.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13277
2013-01-29 21:13:00 +00:00
Julian Seward
f8919a049c On ARM: Don't be spooked by Puts to the translation-invalidation spec
when doing origin tracking, even though they are completely irrelevant.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13177
2012-12-13 15:17:40 +00:00
Florian Krohm
26d4de4575 s390: Fix FOC width. It's 4 bytes not 8.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12965
2012-09-11 23:06:02 +00:00
Florian Krohm
fd63ba5ee7 s390: Ensure proper size when calling get_otrack_shadow_offset_wrk.
Also handle EMNOTE.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12954
2012-09-03 17:34:22 +00:00
Florian Krohm
cd528bd768 Followup patch to r12899, purely mechanical. Rename:
VexEmWarn -> VexEmNote
EmWarn_NUMBER -> EmNote_NUMBER
guest_EMWARN -> guest_EMNOTE
LibVEX_EmWarn_string -> LibVEX_EmNote_string
offB_EMWARN -> offB_EMNOTE
EmWarn_NONE -> EmNote_NONE
See also VEX r2484


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12900
2012-08-26 03:22:09 +00:00
Julian Seward
4a3633e266 Update copyright dates to include 2012.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12843
2012-08-05 15:46:46 +00:00
Julian Seward
3e344c57f6 Merge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic,
mips-valgrind@rt-rk.com, Bug 270777.

Valgrind: changes to existing files.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12616
2012-06-07 09:13:21 +00:00
Julian Seward
8ebb8c30e5 Add initial support for Intel AVX instructions (Valgrind side).
Tracker bug is #273475.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12569
2012-05-21 10:18:10 +00:00
Julian Seward
f8bd0543a4 Fix track-origin instrumentation for ppc32 following r2270/r12476
(initial DFP support).  Maynard Johnson (maynardj@us.ibm.com).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12480
2012-04-02 15:10:37 +00:00
Julian Seward
d2ca761361 Initial support for POWER Processor decimal floating point
instruction support -- VEX side changes.  See #295221.

This patch adds test cases.  Also adds some minor Memcheck
instrumentation tweaks necessitated by the IR changes.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12476
2012-04-02 10:22:05 +00:00
Florian Krohm
0160d2dfc6 With the change in VEX r2258 the guest IA will now also be accessed
in the low word only. Adjust code accordingly.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12392
2012-02-20 15:03:02 +00:00
Philippe Waroquiers
be97cddd7a Fixes 282230 group allocator for small fixed size, use it for MC_Chunk/SEc vbit
* new files include/pub_tool_groupalloc.h and coregrind/m_groupalloc.c
  implementing a group allocator (based on helgrind group alloc).
* include/Makefile.am coregrind/Makefile.am : added pub_tool_groupalloc.h
  and m_groupalloc.c
* helgrind/libhb_core.c : use pub_tool_groupalloc.h/m_groupalloc.c
  instead  of the local implementation.
* include/pub_tool_oset.h coregrind/m_oset.c : new function
  allowing to create an oset that will use a pool allocator.
  new function allowing to clone an oset (so as to share the pool alloc)
* memcheck/tests/unit_oset.c drd/tests/unit_bitmap.c : modified
  so that it compiles with the new m_oset.c
* memcheck/mc_main.c : use group alloc for MC_Chunk
  memcheck/mc_include.h : declare the MC_Chunk group alloc
* memcheck/mc_main.c : use group alloc for the nodes of the secVBitTable OSet
* include/pub_tool_hashtable.h coregrind/m_hashtable.c : pass the free node
  function in the VG_(HT_destruct).
  (needed as the hashtable user can allocate a node with its own alloc,
  the hash table destroy must be able to free the nodes with the user
  own free).
* coregrind/m_gdbserver/m_gdbserver.c : pass free function to VG_(HT_destruct)
* memcheck/mc_replace_strmem.c memcheck/mc_machine.c
  memcheck/mc_malloc_wrappers.c memcheck/mc_leakcheck.c
  memcheck/mc_errors.c memcheck/mc_translate.c : new include needed
  due to group alloc.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12341
2012-01-17 21:16:30 +00:00
Julian Seward
c96096ab24 Update all copyright dates, from 20xy-2010 to 20xy-2011.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12206
2011-10-23 07:32:08 +00:00
Julian Seward
8dd8315914 Add support for IBM Power ISA 2.06 -- stage 1. Valgrind-side changes
and test cases. Bug #267630 and followup fix #270794.
(Maynard Johnson, maynardj@us.ibm.com)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11697
2011-04-15 11:57:05 +00:00
Julian Seward
6107fd666c Add a port to IBM z/Architecture (s390x) running Linux -- Valgrind
side components. (Florian Krohm <britzel@acm.org> and Christian
Borntraeger <borntraeger@de.ibm.com>).  Fixes #243404.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11604
2011-03-07 16:05:35 +00:00
Julian Seward
30c3aef64f x86: get_otrack_shadow_offset_wrk: handle guest_NRADDR. Fixes #257276.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11516
2011-01-28 00:53:37 +00:00
Julian Seward
d4a4b32e72 Don't assert when doing origin tracking for d16-31, f32-63
or q0-15.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11390
2010-09-29 21:40:44 +00:00
Julian Seward
4d88144c11 When origin tracking, handle the new %RFLAGS.ACFLAG guest state
component introduced in vex r2050.  See #249943.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11388
2010-09-28 16:00:11 +00:00
Julian Seward
06d2a1e039 Enable --track-origins on ARM code which accesses CPSR.GE3/2/1/0.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11373
2010-09-22 22:27:41 +00:00
Julian Seward
58d26cc998 Merge from branches/THUMB: add (partial) --track-origins support for
new guest state components needed for Thumb and NEON support.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11282
2010-08-22 12:16:25 +00:00
Julian Seward
1ec3c376a6 Track vex r2001 (initial PCMPISTRI support):
* handle new pseudo-reg XMM16 in memcheck/mc_machine.c

* run_thread_for_a_while: assert that the amd64 XMM guest reg array
  has no holes and the elements are the right size, so that the
  (PCMP)ISTRI_* helpers can treat it as an array.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11249
2010-08-06 08:01:47 +00:00
Julian Seward
9b0574dff8 Update copyright dates to 2010.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11121
2010-05-03 21:37:12 +00:00
Julian Seward
3c1644f476 Enable origin tracking through arm VFP registers; was apparently
previously not enabled only due to brain-deadness on my part.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11012
2010-01-04 11:48:19 +00:00
Julian Seward
e9de458500 Merge from branches/ARM, all parts of the ARM-Linux port except for
the changes to do with reading and using ELF and DWARF3 info.
This breaks all targets except amd64-linux and x86-linux.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10982
2010-01-01 11:59:33 +00:00
Julian Seward
3109865279 Merge in branches/DCAS.
This branch adds proper support for atomic instructions, proper in the
sense that the atomicity is preserved through the compilation
pipeline, and thus in the instrumented code.

These changes track the IR changes added by vex r1901.  They primarily
update the instrumentation functions in all tools to handle the
changes, with the exception of exp-ptrcheck, which needs some further
work in order to be able to run threaded code.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10392
2009-07-01 08:10:49 +00:00
Nicholas Nethercote
07045477ca Merge the DARWIN branch onto the trunk.
I tried using 'svn merge' to do the merge but it did a terrible job and
there were bazillions of conflicts.  So instead I just took the diff between
the branch and trunk  at r10155, applied the diff to the trunk, 'svn add'ed
the added files (no files needed to be 'svn remove'd) and committed.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10156
2009-05-28 01:53:07 +00:00
Julian Seward
e1eec7ec8d Handle new pseudo-register IP_AT_SYSCALL when origin-tracking is
enabled.  Fixes #188161.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9497
2009-03-30 02:27:29 +00:00
Julian Seward
563511a64e Track renaming of guest_CIA_AT_SC to guest_IP_AT_SYSCALL (vex r1886).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9468
2009-03-20 00:28:50 +00:00