Commit Graph

43 Commits

Author SHA1 Message Date
Julian Seward
d62833bdf9 Add a test for rc{l,r}{bwlq} on amd64. (from Emmanuel Thomé)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6540
2007-01-19 20:09:21 +00:00
Julian Seward
bd211db8f5 Include missing files in tarball.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6397
2006-12-13 14:35:03 +00:00
Julian Seward
5b26b045dd Change a bunch of pointer <-> int casts to pointer <-> long casts so
as to stop gcc complaining so much on 64-bit platforms.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6306
2006-10-17 11:09:03 +00:00
Julian Seward
10cb048d3f Regtest for #133678 (amd64 pextrw with 64-bit dst register)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6047
2006-09-11 14:39:05 +00:00
Julian Seward
12affe3595 Add regtest for #132918 (amd64 fprem).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6046
2006-09-11 11:05:26 +00:00
Julian Seward
4fe694b232 64-bit regtest for #132813 (Assertion at priv/guest-x86/toIR.c:652 fails)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6035
2006-08-28 18:53:25 +00:00
Tom Hughes
12b349c8fa Hand assemble cmpxchg16b as old assemblers don't understand it.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6009
2006-08-23 08:27:03 +00:00
Julian Seward
b5db7e3510 Regtest for #127521 (amd64 cmpxchg8b/16b).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6007
2006-08-17 01:39:04 +00:00
Julian Seward
7a85ea67f6 Regtest for bug fixed by r6001.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6002
2006-08-16 01:50:55 +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
324c94bf8c Re-enable regression tests for AMD64 SSE2 'psadbw'.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5987
2006-07-24 08:52:19 +00:00
Julian Seward
ad99fe2c00 Disable tests none/tests/amd64/faultstatus, none/tests/x86/faultstatus
and none/tests/x86/int.  They always fail, the tested functionality
isn't going to get fixed in a hurry, and it's just generally annoying.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5933
2006-05-26 00:50:41 +00:00
Julian Seward
931b079b96 Regression test for clc/stc/cmc on amd64.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5893
2006-05-12 20:28:26 +00:00
Julian Seward
fca59b907a Re-enable amd64 test for pmaddwd.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5839
2006-04-08 16:52:42 +00:00
Julian Seward
4e65de3448 Add an amd64 test program for 'fxtract' - just a copy of the x86 one.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5716
2006-03-07 01:17:12 +00:00
Julian Seward
6fa95850db Test for fcmovnu.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5714
2006-03-06 19:36:30 +00:00
Julian Seward
dd3b4bf6f2 amd64-linux adjustments as a followup to r5493.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5494
2006-01-04 02:55:03 +00:00
Tom Hughes
8eab4a6d08 Use the amd64 tests on amd64 not the x86 ones...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5097
2005-11-12 15:51:31 +00:00
Tom Hughes
8abba99aa0 Run instruction tests under memcheck as well as none.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5094
2005-11-12 15:46:17 +00:00
Tom Hughes
b3ae519581 Add tests for 64 bit instructions.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5024
2005-11-06 12:29:50 +00:00
Tom Hughes
049569da6c Sync sse2 tests from x86 to amd64.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5017
2005-11-05 12:10:31 +00:00
Julian Seward
17ca4985d8 Add test cases for amd64 vector FP unordered compares.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5016
2005-11-05 02:34:06 +00:00
Tom Hughes
100bb1fdf9 Enable tests for shld/shrd instructions which are now supported on amd64.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5011
2005-11-05 00:10:36 +00:00
Julian Seward
1dd43d7427 Test shrd/shld.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5009
2005-11-04 20:18:27 +00:00
Tom Hughes
4ac3c2c42c Add an insn_basic test for amd64. This is based on the x86 one so
doesn't test any 64 bit operations yet.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5005
2005-11-04 17:07:24 +00:00
Tom Hughes
00f6c10491 Allow rax/rbx/rcx/rdx (and their narrower counterparts) to be used
again but only after the high registers are exhausted or (and this is
the important point) if they are explicitly requested.

Also, don't use r8 as it confuses things as we can't tell an explicit
request from a generic request for a byte register.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5003
2005-11-04 16:46:19 +00:00
Tom Hughes
9832634fc3 Fix the amd64 version of gen_insn_test.pl to strip any b/w/d suffix
from register names when generating the clobber list as gcc won't
recognise things like r8d but will recognise r8.

This allows us to use the high number integer registers for the tests
which is something Julian asked for ages ago.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5002
2005-11-04 15:36:05 +00:00
Julian Seward
d335331fd3 Also test jecxz.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5001
2005-11-04 14:38:48 +00:00
Tom Hughes
3d2decfed8 Split faultstatus into the platform independent tests and those
which are x86 specific. The first three x86 specific ones should
work on amd64 as well so I have added those as amd64 tests.

Note that the x86/amd64 tests will still fail as VEX doesn't
always trigger the right sort of signal for faulting instructions
at the moment.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4992
2005-11-02 16:15:55 +00:00
Tom Hughes
dbfe36c3c3 Don't give the heap execute permission - the linux kernel doesn't
normally give execute permission to memory allocated from the heap
with sbrk.

This also required fixing the smc1 test for amd64 to use mmap to
allocate memory so that it can have execute permission.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4983
2005-11-02 13:02:40 +00:00
Julian Seward
05c7773957 Test for jrcxz.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4869
2005-10-05 17:12:23 +00:00
Julian Seward
1fa1105403 Add tests for amd64 LOOP{,E,NE} insn.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4482
2005-08-23 23:52:54 +00:00
Julian Seward
57252ed688 Rename --smc-support= to --smc-check=.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4237
2005-07-24 07:00:45 +00:00
Julian Seward
14a5be1fc4 Self-modifying-code check for amd64.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4125
2005-07-07 13:20:31 +00:00
Julian Seward
98aa9b7354 Add test cases for MOVQ on amd64.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3705
2005-05-14 11:18:31 +00:00
Julian Seward
64b9ead5fa AMD x87 instruction tests.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3687
2005-05-12 19:17:36 +00:00
Julian Seward
8b8d9c2095 Use hi-half xmm registers (REX.R, REX.B == 1) (%xmm8-%xmm15) in an
attempt to flush out any register-number bugs that might be lurking.

It would be nice to be able to do the same with the integer registers,
but gcc-3.3.4 is too stupid to understand asms with clobbered
registers "r8d", etc (plain "r8" etc is OK) and I am too ignorant of
perl to know how to mash r8b/r8w/r8d back into plain "r8" etc for the
clobbered registers list.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3659
2005-05-11 11:57:41 +00:00
Julian Seward
9cdd95c8e3 Regression tests for amd64 instructions.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3658
2005-05-11 11:21:29 +00:00
Julian Seward
3a455359a7 * gcc-3.3.4 seems to generate non-working code for eq_double: workaround
* fix wrong stack offset for comparisons involving %rflags
* (unused): sets of register names for reg numbers >= 8


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3657
2005-05-11 10:42:49 +00:00
Julian Seward
81ce2f37dc SSE2 tests for amd64.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3656
2005-05-11 02:12:31 +00:00
Julian Seward
c01e895fde * test cases for amd64 SSE
* modify gen_insn_test to handle them


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3649
2005-05-10 02:49:11 +00:00
Julian Seward
f39c29a1a8 Versions of Tom's excellent insn-set test programs modified for the
amd64 insn set.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3647
2005-05-09 22:01:37 +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