History log of /external/valgrind/coregrind/m_machine.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b3a1e4bffbdbbf38304f216af405009868f43628 21-Aug-2015 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates, to include 2015. No functional change.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15577 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
7c1d0636fff67d62bf05199a4497189bc1befb67 12-Aug-2015 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Enhance VG_(machine_get_hwcaps) to check enough stuff to ensure
that VEX's XSAVE/XRSTOR implementation will work correctly.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15523 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
a7d291dabeedf369af475acec3478c82af33aa98 08-Aug-2015 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix two more format inconsistencies found on s390. The one
in m_stacktrace.c also existed for other architectures. Fixed
as well.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15508 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
a5e06c36bf9d93461bc8c4351e960888020ea1c4 05-Aug-2015 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix printf format inconsistencies as pointed out by gcc -Wformat-signedness.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15499 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
8eb8bab992e3998c33770b0cdb16059a8b918a06 21-Jul-2015 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Bug 345248 - add support for Solaris OS in valgrind

Authors of this port:
Petr Pavlu setup@dagobah.cz
Ivo Raisr ivosh@ivosh.net
Theo Schlossnagle theo@omniti.com



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15426 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
ad4e979f408239dabbaae955d8ffcb84a51a5c85 05-Jul-2015 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix typos in source code. Patch by Dmitriy (olshevskiy87@bk.ru).
Fixes BZ #349874


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15394 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
75712710b9c49eedcf4f9caa7d7e17494ac3acf8 30-Apr-2015 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Remove a few embarassing comments.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15169 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
112711afefcfcd43680c7c4aa8d38ef180e8811e 10-Apr-2015 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
dd1d372ee14d89793942cea99296853253a664ed 17-Mar-2015 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Minimal update to recognise z13 (s390).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15020 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
1672a24fcc4362bf79b9ba994f8726aabf9641bd 17-Dec-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> For s390 use symbolic register names.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14818 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
732fb4e38991c4f0cef40c5c7e210010360d05eb 09-Dec-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Detect presence of sse3 instructions on x86.
Set VEX_HWCAPS_X86_SSE3 accordingly.
This came about by grepping the source for VEX_HWCAPS_X86_SSE3
and observing that the flag was tested for (in VEX) but not set.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14803 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
3130eab8c67d0c720cb1a86906cc057daa9700cc 14-Nov-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Minor non-functional cleanups.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14723 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
e2800c958044937e72eefa371c10ae47ac40e089 15-Sep-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> coregrind files shall use vg_assert not tl_assert.
Tool files shall use tl_assert not vg_assert.
Fix code accordingly.
Adapted check_headers_and_includes to make sure the code
stays clean in that respect.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14542 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
38a74d2cc4670e3eb559adff51a376cd6ec98005 30-Aug-2014 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> The semantic of the stack bounds is not consistent or is not described.
At various places, there were either some assumption that the 'end'
boundary (highest address) was either not included, included,
or was the highest addressable word, or the highest addressable byte.
This e.g. was very visible when doing:
./vg-in-place -d -d ./helgrind/tests/tc01_simple_race|&grep regi
giving
--24040:2:stacks register 0xBEDB4000-0xBEDB4FFF as stack 0
--24040:2:stacks register 0x402C000-0x4A2C000 as stack 1
showing that the main stack end was (on x86) not the highest word
but the highest byte, while for the thread 1, the registered end
was a byte not part of the stack.

The attached patch ensures that stack bounds semantic are documented and
consistent. Also, some of the stack handling code is factorised.

The convention that the patch ensures and documents is:
start is the lowest addressable byte, end is the highest addressable byte.
(the words 'min' and 'max' have been kept when already used, as this wording is
consistent with the new semantic of start/end).

In various debug log, used brackets [ and ] to make clear that
both bounds are included.

The code to guess and register the client stack was duplicated
in all the platform specific syswrap-<plat>-<os>.c files.
Code has been factorised in syswrap-generic.c

The patch has been regression tested on
x86, amd64, ppc32/64, s390x.
It has been compiled and one test run on arm64.
Not compiled/not tested on darwin, android, mips32/64, arm


More in details, the patch does the following:

coregrind/pub_core_aspacemgr.h
include/valgrind.h
include/pub_tool_machine.h
coregrind/pub_core_scheduler.h
coregrind/pub_core_stacks.h
- document start/end semantic in various functions
also in pub_tool_machine.h:
- replaces unclear 'bottommost address' by 'lowest address'
(unclear as stack bottom is or at least can be interpreted as
the 'functional' bottom of the stack, which is the highest
address for 'stack growing downwards').
coregrind/pub_core_initimg.h
replace unclear clstack_top by clstack_end
coregrind/m_main.c
updated to clstack_end

coregrind/pub_core_threadstate.h
renamed client_stack_highest_word to client_stack_highest_byte
coregrind/m_scheduler/scheduler.c
computes client_stack_highest_byte as the highest addressable byte
Update comments in call to VG_(show_sched_status)
coregrind/m_machine.c
coregrind/m_stacktrace.c
updated to client_stack_highest_byte, and switched
stack_lowest/highest_word to stack_lowest/highest_byte accordingly

coregrind/m_stacks.c
clarify semantic of start/end,
added a comment to indicate why we invert start/end in register call
(note that the code find_stack_by_addr was already assuming that
end was included as the checks were doing e.g.
sp >= i->start && sp <= i->end

coregrind/pub_core_clientstate.h
coregrind/m_clientstate.c
renames Addr VG_(clstk_base) to Addr VG_(clstk_start_base)
(start to indicate it is the lowest address, base suffix kept
to indicate it is the initial lowest address).

coregrind/m_initimg/initimg-darwin.c
updated to VG_(clstk_start_base)
replace unclear iicii.clstack_top by iicii.clstack_end
updated clstack_max_size computation according to both bounds included.

coregrind/m_initimg/initimg-linux.c
updated to VG_(clstk_start_base)
updated VG_(clstk_end) computation according to both bounds included.
replace unclear iicii.clstack_top by iicii.clstack_end

coregrind/pub_core_aspacemgr.h
extern Addr VG_(am_startup) : clarify semantic of the returned value
coregrind/m_aspacemgr/aspacemgr-linux.c
removed a copy of a comment that was already in pub_core_aspacemgr.h
(avoid double maintenance)
renamed unclear suggested_clstack_top to suggested_clstack_end
(note that here, it looks like suggested_clstack_top was already
the last addressable byte)

* factorisation of the stack guessing and registration causes
mechanical changes in the following files:
coregrind/m_syswrap/syswrap-ppc64-linux.c
coregrind/m_syswrap/syswrap-x86-darwin.c
coregrind/m_syswrap/syswrap-amd64-linux.c
coregrind/m_syswrap/syswrap-arm-linux.c
coregrind/m_syswrap/syswrap-generic.c
coregrind/m_syswrap/syswrap-mips64-linux.c
coregrind/m_syswrap/syswrap-ppc32-linux.c
coregrind/m_syswrap/syswrap-amd64-darwin.c
coregrind/m_syswrap/syswrap-mips32-linux.c
coregrind/m_syswrap/priv_syswrap-generic.h
coregrind/m_syswrap/syswrap-x86-linux.c
coregrind/m_syswrap/syswrap-s390x-linux.c
coregrind/m_syswrap/syswrap-darwin.c
coregrind/m_syswrap/syswrap-arm64-linux.c
Some files to look at more in details:
syswrap-darwin.c : the handling of sysctl(kern.usrstack) looked
buggy to me, and has probably be made correct by the fact that
VG_(clstk_end) is now the last addressable byte. However,unsure
about this, as I could not find any documentation about
sysctl(kern.usrstack). I only find several occurences on the web,
showing that the result of this is page aligned, which I guess
means it must be 1+ the last addressable byte.
syswrap-x86-darwin.c and syswrap-amd64-darwin.c
I suspect the code that was computing client_stack_highest_word
was wrong, and the patch makes it correct.
syswrap-mips64-linux.c
not sure what to do for this code. This is the only code
that was guessing the stack differently from others.
Kept (almost) untouched. To be discussed with mips maintainers.

coregrind/pub_core_libcassert.h
coregrind/m_libcassert.c
* void VG_(show_sched_status):
renamed Bool valgrind_stack_usage to Bool stack_usage
if stack_usage, shows both the valgrind stack usage and
the client stack boundaries
coregrind/m_scheduler/scheduler.c
coregrind/m_gdbserver/server.c
coregrind/m_gdbserver/remote-utils.c
Updated comments in callers to VG_(show_sched_status)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14392 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
582d58245637ab05272d89fb94b12fd0f18fa0f8 08-Aug-2014 carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
cae0cc22b83ffb260ee8379e92099c5a701944cb 08-Aug-2014 carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
597314210494248b4fbefd45525a748439629218 24-Jul-2014 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Track vex r2910 (infrastructural improvements in representation of
endianness in VEX).

In short: in m_machine.c, VG_(machine_get_hwcaps), get the endianness
of the host, and pass it through to all places (in VEX) where it is
required.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14184 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
37dd8f69405c476b08fadd314817a49e54e767b4 13-May-2014 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> On 32-bit x86, allow lzcnt to be detected on Intel CPUs as well as on
AMDs. 64-bit equivalent does not have this bug. Fixes #334049.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13957 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
c76d0e5cf15d9a352c39a72867ae1c41875c6bb0 03-May-2014 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
24f0c3a8f6ec94f3f374c41aae7ce3a3363300db 19-Feb-2014 dejanj <dejanj@a5019735-40e9-0310-863c-91ae7b9d1cf9> mips32: Support for 64bit FPU on MIPS32 platforms.

Tests for 64bit FPU instructions on MIPS32 platforms.
Some mips instructions can cause SIGILL (Illegal instruction),
so we need to add SIGILL signal and a proper handler for that signal.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13817 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
b8afd6f2a9ba5a9e7d4f1484a905f9a42d464962 12-Feb-2014 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> arm64: implement the apply on all GP register.
This is needed for leak search to work properly/not crash.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13804 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
0345188cc1524a809b8d7fe8785e1da098d9cbe4 15-Jan-2014 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> arm64: rename guest_SP to guest_XSP so as to avoid a name clash with
guest_SP from s390 world.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13776 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
f0c1250e324f6684757c6a15545366447ef1d64f 12-Jan-2014 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add support for ARMv8 AArch64 (the 64 bit ARM instruction set).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13770 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
b8ba0310d94b421f6522f1a816f85653e795f5d8 21-Oct-2013 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix 324227 memcheck false positive leak when a thread calls exit+block
only reachable via other thread live register

The exiting thread will have its registers considered as not reachable
anymore, registers of other threads will be considered reachable.

This is ensured by using a different exit reason for the
exiting thread and for the other threads.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13670 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
0f157ddb404bcde7815a1c5bf2d7e41c114f3d73 18-Oct-2013 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates (20XY-2012 ==> 20XY-2013)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13658 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
787e8dc1fb76106fa17a3e5547d2cc219fab4fc8 18-Oct-2013 mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9> Don't report BMI support when AVX support is missing.

Bug #326113. This is a bit conservative, but it is what the linux kernel
also seems to be doing. If AVX support is missing (because the OS doesn't
save the wide registers), then also don't report supporting BMI.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13656 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
643d501b0ac9478a58058952f367aef30e9b80b4 14-Oct-2013 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> PPC32/64: Allow 16 byte icache and dcache lines.
Partial fix for #308135. (christophe.leroy@c-s.fr)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13637 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
96ee38d38d27cf15b33b9f0b2985c0c0a56c3c33 16-Sep-2013 petarj <petarj@a5019735-40e9-0310-863c-91ae7b9d1cf9> mips: clean-up in hardware detection

Follow up to VEX r2764.
Add detection of Cavium in /proc/cpuinfo, and test for DSP ASEs only for
platforms with Company ID == MIPS.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13554 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
c91f58449e6fc2a4ce0851639a342c4277612fbb 15-Sep-2013 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix inclusion of header files in coregrind. No pub_tool_*.h should be
included here.
Added pub_core_poolalloc.h and renamed pub_tool_inner.h to pub_core_inner.h.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13548 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
1a59a921dbfe75f7535d9dff6b76ea43a5ed961a 11-Sep-2013 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Clarify wording.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13541 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
7c6a0003a9466af7099d30205c25db7328bc1332 27-Aug-2013 mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9> Support mmxext (integer sse) subset on i386 (athlon). Bug #323713

Some processors like the AMD Athlon "Classic" support mmxext,
a sse1 subset. This subset is not properly detected by VEX.
The subset uses the same encoding as the sse1 instructions.

The subset is described at:
http://support.amd.com/us/Embedded_TechDocs/22466.pdf
https://en.wikipedia.org/wiki/3DNow!#3DNow.21_extensions

Detects mmxext subset from cpuid information (and enables it
when full sse1 is found). Also fixes the prereq of
none/tests/x86/insn_mmxext.vgtest so that it also runs when
full sse1 (and not just the mmxext subset) is found.
It already passed on such configurations. With the VEX patch
(r2745) it also passes with just the mmxext subset.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13515 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
dfbf294f08ac004a60cb3b528d544cb7d0404eb0 12-Aug-2013 carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> Initial ISA 2.07 support for POWER8-tuned libc

The IBM Power ISA 2.07 has been published on power.org, and IBM's new POWER8
processor is under development to implement that ISA. This patch provides
initial runtime and testsuite support for running Valgrind on POWER8 systems
running a soon-to-be released Linux distribution. This Linux distro will
include a POWER8-tuned libc that uses a subset of the new instructions from
ISA 2.07. Since virtually all applications link with libc, it would be
impossible to run an application under Valgrind on this distro without adding
support for these new instructions to Valgrind, so that's the intent of this
patch. Note that applications built on this distro will *not* employ new POWER8
instructions by default. There are roughly 150 new instructions in the Power
ISA 2.07, including hardware transaction management (HTM). Support for these
new instructions (modulo the subset included in this bug) will be added to
Valgrind in a phased approach, similar to what we did for Power ISA 2.06.

Bugzilla 322294, VEX commit 2740

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13494 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
353d8b829ea1a63c17d94388b1473e5b140e5ba8 03-Aug-2013 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Followup to the renaming in VEX r2735.
Also ignore AT_DCACHEBSIZE entries in the auxiliary vector as they
are not needed.
Fixes BZ 306587.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13481 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
3b411c169c685099c2fc26d816d4eac29fca6573 28-Jul-2013 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> s390: New machine model: zBC12


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13473 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
5f790e8e33278b242b52c6479c94ce279b88d82c 25-Jul-2013 dejanj <dejanj@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
1106692158e71bade4e00a2d21548e74b2ea334e 11-May-2013 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> s390: valgrind side support for PFPO. New hwcap added.
See companion patch VEX r2719.

Patch by Maran Pakkirisamy (maranp@linux.vnet.ibm.com).
Part of fixing BZ #307113


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13387 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
fda50af388bcb6f7fea519efdf565517f8874ff4 27-Mar-2013 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Build system and hwcaps fixes pertaining to #305728, which added
support for AVX2, BMI1, BMI2 and FMA instructions.
(Jakub Jelinek, jakub@redhat.com)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13340 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
e653b034b9252da55c93980c819814ba597f9c29 26-Mar-2013 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add hwcaps checking on amd64 for RDTSCP. Part of the fix for #251569
and its dups.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13337 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
4df0bfc0614379192c780c944415dc420d9cfe8e 28-Feb-2013 petarj <petarj@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
0fca5ee09d4582f9dae5e0b7e16348db19d9de40 26-Dec-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Remove a fixme.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13204 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
df14eeae2e6abcd70a35e78321066107bf926227 09-Dec-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Clean up the code for facility detection.
First, use STFLE whenever possible (i.e. for all facilities that
were introduced at the same time STFLE was or later). Turns out,
that is most facilities we're interesting in probing, except long
displacement.
Secondly, remove magic constants denoting facility bits and use
the definition from libvex_s390x_common.h
Thirdly, build up the debugging message that shows the status of
the probed facilities in a generic way so it won't have to be
changed when facilities are added.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13174 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
0849a4da0eb52c93830853d03886cc56c95080df 03-Dec-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Probe host for conditional load/store facility.
New hwcaps: VEX_HWCAPS_S390X_LSCOND


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13149 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
6bd9dc18c043927c1196caba20a327238a179c42 23-Nov-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Changes to allow compilation with -Wwrite-strings. That compiler option
is not used for testcases, just for valgrind proper.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13137 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
66826ece25fc70c7437c38170f2a4312504bd7ff 19-Nov-2012 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix a couple of x86 char-signedness stragglers


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13128 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
19f91bbaedb4caef8a60ce94b0f507193cc0bc10 10-Nov-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix more Char/HChar mixups. Closing in...


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13119 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
7862701c0e3f556e4a0c7ec4074a40526c73a4ef 07-Oct-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> This patch is the first installment of the cache info reorganisation.
It's reorg only. No new cache autodetection stuff has been added.

coregrind
pub_tool_cpuid.h is removed as it is no longer exposed to tools.
Its contents has moved to pub_core_cpuid.h.
New file: coregrind/m_cache.c to contain the autodetect code for
cache configurations and define other cache characteristics that
cannot be autodetected (i.e. icaches_maintain_coherence). Most of
cg-arch/x86-amd64.c was moved here. The cache detection code for
x86-64 needs to be fixed to properly initialise VexCacheInfo. It
currently has cachegrind bias.
m_cache.c exports a single function (to coregrind):
VG_(machine_get_cache_info)(VexArchInfo *vai)
This function is called from VG_(machine_get_hwcaps) after hwcaps have
been detected.

cachegrind
Remove cachegrind/cg-{ppc32,ppc43,arm,mips32,s390x,x86-amd64}.c
With the exception of x86/mamd64 those were only establishing a
default cache configuration and that is so small a code snippet that
a separate file is no longer warranted. So, the code was moved to
cg-arch.c. Code was added to extract the relevant info from
x86-amd64.
New function maybe_tweak_LLc which captures the code to massage the
LLc cache configuration into something the simulator can handle. This
was originally in cg-x86-amd64.c but should be used to all architectures.
Changed warning message about missing cache auto-detect feature
to be more useful. Adapted filter-stderr scripts accordingly.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13028 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
e968591ecff42023cd669a49c187c33f4ef77f32 02-Sep-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix an uninitialised variable found be BEAM.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12927 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
370bc773b6b0c0c4977634f6614947a448a5aa48 30-Aug-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> s390: Detect floating point extension facility. Update s390-features.c


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12920 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
87a25cf59352617f8876b8bdc8d437d4aafe5ae3 28-Aug-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> s390: Add zEC12 machine model. Fix spelling for some older models.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12905 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
833ffd0ec61b2df63248f736b9573ef921c1b035 26-Aug-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> On s390: detect presence of stckf hardware facility.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12902 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
03f8d3fc25f5a45c5826259d1b33b7f310117279 05-Aug-2012 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates to include 2012.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12843 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
2fd883ae0212eb2e4fcc65bde058bb9a145b3db9 30-Jun-2012 petarj <petarj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Removing the warning about defined yet unused function on MIPS.

Getting rid of the warning for the function handler_unsup_insn which is not
used on MIPS.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12686 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
5db15403e889d4db339b342bc2a824ef0bfaa654 07-Jun-2012 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
98763d5a6ee3a05ac0ee8340c30ded34c2b08a6d 04-Jun-2012 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> m_machine: add new function VG_(machine_get_size_of_largest_guest_register)
cachegrind: use the new function to abort startup if the minumum line
size is smaller than the size of the largest guest register.
Partially derived from a patch by Josef Weidendorfer.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12605 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
e3d028c00c4c5b0d3eb5b22fcaf6e9fb4ca701c2 03-May-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add ETF3 facility (valgrind bits). Part of fixing Bugzilla #289839.
Patch by Divya Vyas (divyvyas@linux.vnet.ibm.com)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12550 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
ee1a897f672cce5583767ed9baf3b0bf0a4c170b 26-Apr-2012 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add feature detection for amd64.avx, and (potentially) FMA.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12543 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
4e63b8eeac4166e70f26a17502621bddf1b01ff9 22-Apr-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Be lenient if the machine model could not be determined. Assume it's
a new machine as opposed to a too old machine.
Patch by Christian Borntraeger (borntraeger@de.ibm.com) with additional
commentary. Fixes 298394.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12534 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
0daa4e31a3407ce0b0db8a90be8dd14bd8eccb35 22-Apr-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Consolidate and update information about dependencies of
VG_(machine_get_hwcaps) for all architectures in pub_core_machine.h
and avoid double maintenance.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12532 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
68aba524d0de0532c29e60f7b8140e6e39fbac30 21-Apr-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Set VEX_HWCAPS_S390X_STFLE if available.
This should have been part of r12335.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12525 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
5ba075a1b629016370926fceacaf8e9155e1001c 02-Apr-2012 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fixes for capabilities checking w.r.t. Power DFP instructions
(Valgrind side). Fixes #297329.
(Maynard Johnson, maynardj@us.ibm.com)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12483 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
a22f59db02284784a1e5e51587e2ce09db3a2a18 27-Jan-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> (fixes bug 289939 wish: complete monitor cmd 'leak_check' with details
about leaked or reachable blocks)

This patch implements two new memcheck gdbserver monitor commands:
block_list <loss_record_nr>
after a leak search, shows the list of blocks of <loss_record_nr>
who_points_at <addr> [<len>]
shows places pointing inside <len> (default 1) bytes at <addr>
(with len 1, only shows "start pointers" pointing exactly to <addr>,
with len > 1, will also show "interior pointers")


Compiled and reg-tested on f12/x86, deb5/amd64, f16/ppc64.

The 'block_list' command is implemented on top of the
lr_array/lc_chunks/lc_extras arrays used during the last leak search.
NB: no impact on the memory for the typical Valgrind usage where a leak
search is only done at the end of the run.
Printing the block_list of a loss record simply consists in scanning the
lc_chunks to find back the chunks corresponding to the loss record for which
block lists is requested.

The 'who_points_at' command is implemented by doing a scan similar to
(but simpler than) the leak search scan.
lc_scan_memory has been enhanced to have a mode to search for a specific
address, rather than to search for all allocated blocks.
VG_(apply_to_GP_regs) has been enhanced to also provide the ThreadId and
register name in the callback function.

The patch touches multiple files (but most changes are easy/trivial or factorise
existing code).

Most significant changes are in memcheck/mc_leakcheck.c :
* changed the LC_Extra struct to remember the clique for indirect leaks
(size of structure not changed).
* made lr_array a static global
* changed lc_scan_memory:
to have a search mode for a specific address (for who_points_at)
(for leak search) to pass a 'current clique' in addition to the clique
leader
so as to have a proper clique hierarchy for indirectly leaked blocks.
* print_results: reset values at the beginning of the print_result of the
next leak search, rather than at the end of print_results of the previous
leak search.
This allows to continue showing the same info for loss records till a new
leak search is done.
* new function print_clique which recursively prints a group of leaked
blocks, starting from the clique leader.
* new function MC_(print_block_list) : calls print_clique for each clique
leader found for the given loss record.
* static void scan_memory_root_set : code extracted from
MC_(detect_memory_leaks) (no relevant change)
* void MC_(who_points_at) : calls scan_memory_root_set, lc_scan_memory
and VG_(apply_to_GP_regs)(search_address_in_GP_reg) to search
pointers to the given address.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12357 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
d19733c03aa442a5927770f327ee5ec4bd944a60 15-Jan-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add support for the s390's TROO insn. These are the valgrind bits.
Detect ETF2 enhancement facility using STFLE. Add testcases.
Patch by Divya Vyas (divyvyas@linux.vnet.ibm.com) with
modifications. Partial fix of #273114


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12335 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
0016492d69a0f3cd2b68afe25c9b68911b7b906b 25-Oct-2011 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix an out-of-bounds array access found by IBM's BEAM checker.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12232 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
ec062e8d96a361af9905b5447027819dfbfee01a 23-Oct-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update all copyright dates, from 20xy-2010 to 20xy-2011.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12206 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
258ede7d62d10597e1551aab0ff5c4abb107444a 03-Sep-2011 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add support for s390x model z114. See also VEX r2198


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12005 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
6e9de463ef677f093e9f24f126e1b11c28cf59fd 28-Jun-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Delete the AIX5 port. The last release this worked for is 3.4.1,
and then only on AIX 5.2 and 5.3.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11842 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
ad8a591c92e1003de859735c77c9474a53b90e31 10-Jun-2011 tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> Teach cachegrind/callgrind how to parse the cache description
in the CPUID data on recent Intel processors.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11810 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
1c6f6ab689f5f0ad3882cc12a4d9dd5a18a0a2a0 27-Apr-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> s390x: fpr - gpr transfer facility -- valgrind side fixes,
and test cases. Fixes #268619.
(Florian Krohm, britzel@acm.org)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11713 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
f34eb496099507090f26dcf94bb780da8b3894e5 15-Apr-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
2c3f2ea57308833df5a7d463e9a649c8f6d1766f 13-Apr-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> s390x: reconsider "long displacement" requirement -- hwcaps detection
changes. See #268620. (Florian Krohm, britzel@acm.org)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11695 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
97d3ebba515c00930db4ee3f52af571bc84b2ef6 11-Apr-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add an alternative implementation of VG_MINIMAL_{SET,LONG}JMP
for ppc32-linux, that works for gcc >= 4.4. Related to #259977.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11688 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
6c591e15c1d6402a2a755310f005f795b68e7e38 11-Apr-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Create new module m_libcsetjmp, which wraps up uses of
__builtin_setjmp and __builtin_longjmp so that they can be selectively
replaced, on a platform by platform basis. Does not change any
functionality. Related to #259977.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11687 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
c7ffc94890e120c72d5802487b1092425323dc02 28-Mar-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix up most but not all warnings generated by gcc-4.6 about
dead assignments ("[-Wunused-but-set-variable]").



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11673 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
b5b87408c0c99f9f6938d8cd921e2a5f420577c4 07-Mar-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
fa5ce5616a17e79828fbc79f30b02b5085151e3c 24-Sep-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> On arm-linux, add r7 to the set of registers that the CFI unwinder
knows how to unwind. This is important when unwinding Thumb code
the CFA is often stated as being at some offset from r7.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11377 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
a3551be497f6c4afc5dfbbbcd7c7a955a68fb22b 09-Sep-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> arm-linux: determine whether the host supports Neon by looking at our
AUXV at startup, rather than by trying to execute a Neon instruction
and seeing whether it SIGILLs. Apparently the latter is not a
reliable way to ascertain the presence of usable Neon support. Fixes
#249775.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11347 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
5ae70ce1f365ec09112da924c4e0e7aa673fd9c6 08-Sep-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix somewhat nonsensical ifdeffery.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11345 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
dcb3a5968fc11a32e82e5e865201de63e50f2a7a 04-Sep-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Stop gcc complaining that dcbz_szB is used uninitialised.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11339 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
b9c815bb1cd57263ad0f081c27c88120d24ce4c5 03-Sep-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Support the DCBZL instruction. Also, query the host CPU at startup
time to find out how much space DCBZL really clears, and make the
guest CPU act accordingly. (valgrind-side changes).
(Dave Goodell, goodell@mcs.anl.gov)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11337 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
83c5a921adba406a2bad193d59e22bc77522085f 02-Sep-2010 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Added functions for querying the properties of the alternate stack.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11324 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
1dbd3376656236debf5d35a9b5d8a507a6c307f0 22-Aug-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge from branches/THUMB: m_machine changes needed for Thumb support:
* track guest_R15 -> guest_R15T renaming
* change min instruction size to 2
* tidy up VG_(get_IP) etc functions a bit
* add hwcaps detection code for ARM



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11283 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
40d91c7dcfd400464d2e1385caad6b31c17823d4 29-Jul-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> x86/amd64: detect whether the CPU supports LZCNT. Followup to
#212335.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11241 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
9eecbbb9a9cbbd30b903c09a9e04d8efc20bda33 03-May-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates to 2010.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11121 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
f5f1e12bd89408917c1ffeb22ec23a1fd11b7a23 02-Jan-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Various minor fixups to make ppc32/64-linux work again following
recent ARM-Linux merge.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10992 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
59570ffbe31930ab4d678754daaeec0715117a3d 01-Jan-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
598971eaf64c982788a8ca9eaa75c8cb181acb56 12-Jul-2009 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix identification of sse3 on amd64s. Previously it was identifying
ssse3, not sse3 (sigh).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10434 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
1c0ce7a9edf8772773f6216dbad4bb04317d23b6 01-Jul-2009 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
3b0cae743ec228d9f1c2787b303282363c183dc7 28-May-2009 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Reinstate an include needed on ppc{32,64}-linux.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10161 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
f76d27a697a7b0bf3b84490baf60623fc96a23af 28-May-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> 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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
252d72fb08a80a6f793284e77991a7dfaa6ba7c5 20-May-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Remove an unnecessary #include.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10024 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
cda2f0fbda4c4b2644babc830244be8aed95de1d 18-May-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merged non-Darwin-specific parts of r9397,r9423,r9490, 9461, 9462 from the
DARWIN branch. A big ugly DARWIN/trunk sync commit, mostly to do with
changing the representation of SysRes and vki_sigset_t. Functionality of
the trunk shouldn't be changed by it.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9876 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
9f207460d70d38c46c9e81996a3dcdf90961c6db 10-Mar-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Updated copyright years.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9344 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
c4431bfe04c7490ea2d74939d222d87f13f30960 15-Jan-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Introduce a new type, PtrdiffT. Replace lots of uses of OffT (all those
that are memory offsets) with PtrdiffT; OffT should only be used for file
sizes and offsets.

Change Off64T from a ULong to a Long, as it should be. Replace some uses
of ULong in the address space manager with Off64T to match.

Also add a comment explaining the meanings of the basic types like Addr,
OffT, SizeT, etc.

Also fix the prototype for VG_(pread) -- the last arg is an OffT, not an
Int.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8959 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
1581e745b8991508ef5243fd2d168790caf578e1 13-Jan-2009 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Do not only intercept SIGILL during detection of the supported instruction set
on ppc but also SIGFPE. This patch should make instruction set detection work
on the PowerPC 440EPx.
Fixes bug #176926.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8945 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
9c606bd8634cd6b67bb41fa645b5c639668cfa2d 18-Sep-2008 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge all remaining changes from branches/PTRCHECK. These are some
relatively minor extensions to m_debuginfo, a major overhaul of
m_debuginfo/readdwarf3.c to get its space usage under control, and
changes throughout the system to enable heap-use profiling.

The majority of the merged changes were committed into
branches/PTRCHECK as the following revs: 8591 8595 8598 8599 8601 and
8161.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8621 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
89230cace4f5acad8037e4cb4b3e49e83d3a275b 29-May-2008 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Allow 64-byte line sizes (PA6T cpu).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8151 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
7cf4e6b6aed533af53339f36099ed244dc4a5b7f 01-May-2008 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge branches/OTRACK_BY_INSTRUMENTATION into the trunk. This adds
support to Memcheck for tracking the origin of uninitialised values,
if you use the --track-origins=yes flag.

This currently causes some Memcheck regression tests to fail, because
they now print an extra line of advisory text in their output. This
will be fixed.

The core-tool interface is slightly changed. The version number for
the interface needs to be incremented.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7982 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
0fb03204ca433b7d81053a68bbdca11ee6c5fec6 29-Mar-2008 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Added VG_(thread_get_stack_size)().

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7799 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
b8b79addf04dd5d0b558916e26df0b1927cbd758 03-Mar-2008 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge in the DATASYMS branch.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7540 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
4d474d086188fd1f29fa97dbd84d8ea2e589a9b8 11-Feb-2008 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates ("200X-2007" --> "200X-2008").


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7398 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
bbec7728efefaa650970dd1f0282b77040287133 25-Nov-2007 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Misc changes needed to support exp-drd (Bart Van Assche).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7213 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
9ebd6e0c607fa30301b1325874eb8de871c21cc5 08-Jan-2007 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6488 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
f1c91e04aa395a74092e26da815dbde4d769ee0a 17-Oct-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge r6127: Extend for AIX5. Nothing surprising here.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6264 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
4cfea4f9480393ed6799db463b2e0fb8865a1a2f 14-Oct-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Create a new module, m_vki, and move all knowledge about the kernel
interface, except for the syscall numbers, into that. Mostly this
means moving include/vki-*.h to include/vki/vki-*.h.

include/pub_tool_basics.h previously dragged in the entire kernel
interface. I've done away with that, so that modules which need to
see the kernel interface now have to include pub_{core,tool}_vki.h
explicitly. This is why there are many modified .c files -- they have
all acquired an extra #include line.

This certainly breaks all platforms except x86. Will fix shortly.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6225 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
e4b0bf07b0ee0a18eacc5aba91686ab5fc1d327b 06-Jun-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5954 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
715921220d918dfee1cabe5aa01181d031d84544 04-Apr-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add a comment that really should have been in r5820.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5821 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
54d0dc768db5e4c90286ee79146b57f249fdb99c 04-Apr-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> ppc32-linux: work around assemblers which can't do Altivec, by
emitting the relevant instruction directly. Fixes a build problem on
Debian 3.1 (ppc32).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5820 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
7637e9e116e1b92f757993075d9b72ee36be9314 21-Feb-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix CPU feature identification for ppc32/64 - add more paranoia, and
configure the sigill handler so that it can be used more than once.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5662 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
b32bc73b166b25708b69f4a27092807d69194173 27-Jan-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Un-break ppc32 following recent hw-capabilities hackery.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5598 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
e3121f30971a7a9a977a3f7d3649dbddd1a0f960 27-Jan-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Track vex r1555 (Change the way Vex represents architecture variants
into something more flexible.)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5597 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
53ee1fc8a2968c7e4d1eb75b89a8d4ff6908483c 23-Dec-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Deal with function pointer vs function entry crazyness on ppc64-linux.
Memcheck is done, but any tool which generates IR helper calls will
need to be similarly adulterated.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5418 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
1f0d814045aba94e01e62e04e968ca8b970b3d44 23-Dec-2005 cerion <cerion@a5019735-40e9-0310-863c-91ae7b9d1cf9> Track changes to PPC naming convention - VEX r1504



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5416 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
297c88fbff9fd02b8f8429b8b4d34cfc48f81eee 22-Dec-2005 cerion <cerion@a5019735-40e9-0310-863c-91ae7b9d1cf9> fixed up ppc64 assembly with .opd sections

do_syscall_for_client_WRK() needed a bigger stack to avoid the linkage area.

always use dot_prefix for label calls

not wrapping assembly with
.section ".text"
...
.previous
- ppc64 doesn't like it... seems we can't 'stack' more than one section to pop off with .previous ?





git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5405 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
2c48c7b0a453d32375a4df17e153011b797ef28c 29-Nov-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add framework for ppc64 support. Apologies in advance for the
inevitable breakage to other platforms.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5250 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
2c36d4285afacafc10232e2f70978e0519216138 13-Nov-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> The absolute bare minimum changes needed to make it work on an
integer-only PPC processor (PPC440GX).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5110 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
22a787b158b7e6139e10b524db40168d3f09f872 13-Nov-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Use revised PPC32 subarchitecture categories.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5109 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
e3826cfe34ec9a0caa570a0d15647b28711584a0 13-Nov-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Hook the ppc32 stuff up to the revised CPU detection machinery, and
add a bunch of code to detect what the cpu can do at startup by
catching SIGILLs. Shame PPC doesn't offer any sane mechanism for
finding out what instruction subsets the CPU is capable of (a la
x86/amd64 cpuid).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5108 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
e2d1e670d412ff85c824ba5c043161816b9e26bd 13-Nov-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Tidy up the machinery for detecting the CPU type and capabilities.
Move it from m_translate to m_machine, which is a more appropriate
place for it.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5104 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
a48a4939011eb7c09e12d29fe00e792a635b83d6 29-Sep-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Make ppc32-linux build again following aspacem merge. Doesn't work, though:
programs crash before reaching main. I don't know why.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4819 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
c6957cf4b6aed7b7b3f2117ce37ef38791332ea5 13-Sep-2005 cerion <cerion@a5019735-40e9-0310-863c-91ae7b9d1cf9> Rename VG_(have_altivec) => VG_(have_altivec_ppc) for consistency.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4641 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
bc28f66763b196f4107a06d00e5dd17d594b9b94 13-Sep-2005 cerion <cerion@a5019735-40e9-0310-863c-91ae7b9d1cf9> setup new variable VG_(have_altivec) from auxv::AT_HWCAP
fixed default VSCR in dispatch-ppc32.S (non-java mode = 1)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4636 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
acaec5fd0a53ebd20fded3651169085bc7e90e78 19-Aug-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Incorporate a patch from Craig Chaney which gives better stack
snapshots on ppc32-linux in the presence of functions subject to
leaf-function optimisations.

At the same time, simplify the stack unwinding logic by basically
implementing it separately for each target. Having a single piece of
logic for amd64 and x86 was tenable, but merging ppc32 into it is too
confusing. So now there is an x86/amd64 unwinder and a ppc32
unwinder.

This requires plumbing a link-register value into
VG_(get_StackTrace2), and that in turn requires passing it around
several other stack-trace-related functions. Hence 7 changed files.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4464 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
1d0cb0d000768c01536d61cbb0a2d6e8a9af52eb 15-Aug-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Something I realised recently: in C, iterators are much better than
higher-order functions for traversing data structures. The higher-order
approach is too clumsy due to the lack of polymorphism and closures; you
have to use void* too much and it is more verbose than it should be.

Hence, I replaced all the uses of HT_first_match() and
HT_apply_to_all_nodes() with equivalent uses of the hashtable iterator.
Also replaced higher-order traversal functions for Memcheck's freed-list
and the thread stacks with iterators. That last change changes the
core/tool interface, so I've increased the version number.







git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4415 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
7821e2ed55ac6c2303eb51a06bafd5baada2423d 08-Aug-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Make Valgrind work again on x86 CPUs which don't have SSE. This is a
bit of an ugly hack (see comments in m_machine.c) which is suitable
for merging into 3_0_BRANCH, but should be cleaned up once that's
done.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4339 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
10f08cf5b84882eebbb6712a7be890577650e8ad 29-Jun-2005 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> ppc32: reinstate collection of cache-line-size info from the auxv
array at startup. This is used in m_transtab. However this info is
not yet fed to Vex, so it's still important to zero-out the auxv field
holding cache line size info passed to the client, so as to stop the
client's glibc using dcbz. This will be fixed.

Also get rid of a bunch more ppc32-specific vdso stuff in m_main that
doesn't need to be done. This now means ppc32-linux specifics in
m_main are only marginally intrusive than the x86-linux or amd64-linux
specifics in m_main.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4052 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
af839f52d74df156d655201a889954133ab01be7 23-Jun-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Removed the VGA_/VGO_/VGP_ prefixes for arch/OS/platform-specific
things. These made sense when the arch/OS/platform-specific code was in
one module, but as that code got mixed in with generic code the boundary
between generic and non-generic blurred, and the distinction made less
sense. So let's get rid of them.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4002 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
b506bd863e6cab5aea7cc4bea2ac3bc19a781b56 21-Jun-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Moved VG_(first_matching_thread_stack), removing m_threadstate's dependency
on m_machine.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3983 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
85665ca6fa29dd64754dabe50eb98f25896e752a 20-Jun-2005 cerion <cerion@a5019735-40e9-0310-863c-91ae7b9d1cf9> Finally, valgrind on ppc32.
Plenty still to do, but simple programs like ls seem to run ok

Thanks, Paul, for having your ppc port of valgrind 2.4 to work from!




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3969 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
c7561b931e249acf3768ead77638545b0ccaa8f1 19-Jun-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Final commit for the initial modularisation pass:

- Broke part of m_scheduler off into a new module m_threadstate. It
contains ThreadState, VG_(threads)[] and some basic operations on the
thread table. All simple stuff, the complex stuff stays in m_scheduler.
This avoids lots of circular dependencies between m_scheduler and other
modules.

- Managed to finally remove core.h and tool.h, double hurrah!

- Introduced pub_tool_basics.h and pub_core_basics.h, one of which is
include by every single C file.

- Lots of little cleanups and changes related to the above.

- I even did a small amount of documentation updating.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3944 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
6ace3ea69b3f004df3f06c78cf13aa514aaa7460 17-Jun-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Renamed VG_(mark_from_registers) to the more general
VG_(apply_to_GP_regs). Moved it into m_machine.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3919 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c
f536bbbd4bf2024926574c5ed99b3e6251c6ff44 13-Jun-2005 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Created m_machine, for various machine-related things.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3903 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_machine.c