19 Commits

Author SHA1 Message Date
Julian Seward
68452584af Merge r6143: Deal with ppc{32,64}-aix5.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6279
2006-10-17 01:49:50 +00:00
Julian Seward
6be6614e3a Regression tests for SSE3 support.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5997
2006-08-05 12:22:52 +00:00
Julian Seward
6020f3dc10 Do ppc32 tests on ppc64-capable platforms.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5495
2006-01-04 03:08:16 +00:00
Julian Seward
2e4ca6e583 Don't confuse ppc32 and ppc64.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5472
2006-01-02 16:24:03 +00:00
Tom Hughes
8cc5ae14db Allow 32 bit x86 tests to run on amd64 machines.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5087
2005-11-11 14:33:43 +00:00
Julian Seward
33f62a359f Do cpu string identification right, so the ppc32-specific tests
actually get run.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5076
2005-11-10 23:30:21 +00:00
Nicholas Nethercote
7310d60c12 Fix ppc32 regtest execution. Thanks to Jeroen Witmond for spotting it.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4628
2005-09-13 00:45:14 +00:00
Nicholas Nethercote
3ac510b85e Use the standard #ifdefs for arch-specific code.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4297
2005-07-30 01:22:37 +00:00
Nicholas Nethercote
fbf8653c8b Removed the remnants of the attempt at an ARM port, because it had
bit-rotted badly and was clogging up the code.

I put the useful remnants in docs/porting-to-ARM in case anyone ever
wants to try porting to ARM again.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4092
2005-07-02 23:13:59 +00:00
Julian Seward
10a5136151 ppc32-linux build fix.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3987
2005-06-21 10:11:36 +00:00
Julian Seward
0356d27ca6 Merge in changes from the 2.4.0 line. This basically brings in the
overhaul of the thread support.  Many things are now probably broken,
but at least with --tool=none, simple and not-so-simple threaded and
non-thread programs work.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3265
2005-03-10 23:59:00 +00:00
Nicholas Nethercote
10b4595add Added beginnings of an AMD64 port, so lots of new files and directories.
It compiles, but aborts immediately if you try to run it.

I didn't include ldt.c;  I'm not sure how the LDT is used on AMD64.  It can be
added later if necessary.

While doing this, did some 64-bit cleanness fixes:
- Added necessary intermediate casts to ULong to avoid warnings when converting
  ThreadId to void* and vice versa, in vg_scheduler.c.
- Fixed VALGRIND_NON_SIMD_CALL[0123] to use 'long' as the return type.
- Fixed VALGRIND_PRINTF{,BACKTRACE} to use unsigned longs instead of unsigned
  ints, as needed.
- Converted some offsets in vg_symtab2.h from "Int" to "OffT".
- Made strlen, strncat, etc, use SizeT instead of 'unsigned int' for the length
  parameter.
- Couple of other minor things.

I had to insert some "#ifdef __amd64__" and "#ifndef __amd64__" guards in
places.  In particular, in vg_mylibc.c, some of our syscall wrappers aren't
appropriate for AMD64 because the syscall numbering is a bit different in
places.  This difference will have to be abstracted out somehow.

Also rewrote the sys_fcntl and sys_fcntl64 wrappers, as required for AMD64.

Also moved the ipc wrapper into x86, since it's not applicable for
AMD64.  However, it is applicable (I think) for ARM, so it would be nice
to work out a way to share syscall wrappers between some, but not all,
archs.  Hmm.  Also now using the real IPC constants rather than magic
numbers in the wrapper.

Other non-AMD64-related fixes:
- ARM: fixed syscall table by accounting for the fact that syscall
  numbers don't start at 0, but rather at 0x900000.
- Converted a few places to use ThreadId instead of 'int' or 'Int' for
  thread IDs.
- Added both AMD64 and ARM (which I'd forgotten) entries to valgrind.spec.in.
- Tweaked comments in various places.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3136
2004-11-29 13:54:10 +00:00
Nicholas Nethercote
4399d9700f Added beginnings of an ARM port, to the point where it compiles. It does not
run, though.  There are lots of stubs to be filled in.  (The asm ones currently
just have "swi" in them, which seems to cause seg faults.) 

Also, some of the macros are decided dubious, especially:

  ARCH_* are bogus
  SYSCALL_RET is bogus
  PLATFORM_SET_SYSCALL_RESULT is bogus
  not sure about SET_SYSCALL_RETVAL
  FIRST_STACK_FRAME et al -- bogus?
  VG_MAX_JUMPS ?

And in stage2.lds, the 0x8048000 is almost certainly wrong


This required some tweakings of the core:
- some of the vki_*.h kernel types were fixed up

- had to disable the AM_PROG_CC_C_O macro in configure.in, because automake
  (autoconf?) didn't like it...

- some "#ifdef __x86__" guards were introduced, for nasty x86 things I don't
  yet know how to factor out (trampoline page muck, sysinfo page muck).

- fixed a minor stupidity in vg_proxylwp.c.

- moved the ptrace wrapper into the x86-linux part

- had to change the intercept mangling scheme, to use 'J' instead of '$' as the
  escape char because GCC didn't like '$'.  This is all very dubious, and only
  works because none of our intercepted symbols contains a 'J'.  To be fixed up
  ASAP.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3120
2004-11-26 19:34:36 +00:00
Nicholas Nethercote
10c3e3c927 Arch-abstraction:
- Added a hacky mechanism which prevents the regtest script from entering
directories for other architectures.  (Eg. when running on x86/, it won't enter
a ppc/ subdir.)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3045
2004-11-18 18:21:56 +00:00
Nicholas Nethercote
3b4dc0bdba Generalised the reg test script again: replaced the "cpu_test" line,
which caused the test to be skipped if the CPU type wasn't appropriate,
with a "prereq" line, which specifies a command that must succeed before
the test is run.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3041
2004-11-18 12:48:17 +00:00
Nicholas Nethercote
f4d320e3c4 Arch-abstraction:
- Rewrote tests/cputest.c so that it can apply to different kinds of
  processors.  The idea being that any arch-specific tests have a cpu_test:
  label in their .vgtest file, so they'll only get executed if the right
  machine is being used.
- Rewrote a bunch of .vgtest files accordingly.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2802
2004-10-19 16:29:30 +00:00
Tom Hughes
cd101bf7b2 Extended instruction test system to handle x87 floating point instructions
and started working on adding tests for the x87 instruction set.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2338
2004-03-27 18:02:37 +00:00
Nicholas Nethercote
4c8ecb23c3 Heroic patch from Tom Hughes:
This patch adds translation tests for most of the basic x86 instructions and
  fixes a few missing/broken instructions to work properly.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2242
2004-02-11 23:33:29 +00:00
Nicholas Nethercote
a49958845e Adding files from Tom Hughes' SSE-completion patch, which I forgot yesterday.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2209
2004-01-20 09:24:53 +00:00