Commit Graph

13 Commits

Author SHA1 Message Date
Julian Seward
2d2604e78d Add JCond-32 NP (long jump when parity odd) and CMOV NP too.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@109
2002-04-21 11:43:11 +00:00
Julian Seward
b16935d300 Oops! The floating-point conditional-move instructions read %EIP, so
we'd better annotate them as such!

Fixes a floating-point misbehaviour bug reported by Robert W. Anderson
<anderson110@poptop.llnl.gov>.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@95
2002-04-18 02:18:24 +00:00
Julian Seward
93b2c2ed95 Get rid of the muraroa.demon.co.uk references since that account is
soon to disappear.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@83
2002-04-16 02:51:05 +00:00
Julian Seward
43ca0bb6f4 Get rid of the --client-perms= flag. Valgrind now depends critically
on the client-request subsystem, and disabling it is no longer a
sensible thing to do.

Also: in the manual, mention flags --trace-sched= and --trace-pthread=.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@79
2002-04-16 01:55:18 +00:00
Julian Seward
05207b3508 Relent, and properly implement bt/bts/btc/btr for literal bit-offsets.
bt_literal.c is a somewhat halfhearted test case for it.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@76
2002-04-16 00:42:12 +00:00
Julian Seward
0f38b1975c Get rid of the old bt/bts/btr/btc implementation.
Turns out these insns are also available as Grp8 extensions, with
literal bit-offset values.  Nuisance.  I've #if 0'd out the old code
which implements them since am too lazy to fix them properly, and I
can't find any cases of their use anyway.  I'll wait until someone
yelps.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@75
2002-04-15 18:36:39 +00:00
Julian Seward
cdde41f423 Correctly implement x86 bt/btc/bts/btr insn. Previous impl was wrong:
* Didn't handle correctly operands in memory, where arbitrary signed
  bit offsets are allowed.  Prior impl will trash the client's stack
  and give the wrong answer.

* Was done by a helper function and therefore could give spurious
  value errors.

Now the address computations are done in-line.

Old implementation is there, but unused and scheduled for demolition.

Test case to follow.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@73
2002-04-15 14:35:28 +00:00
Julian Seward
7a36f60133 Mega-merge of my last 2 weeks hacking. This basically does the groundwork
for pthread_* support.  Major changes:

* Valgrind now contains a (skeletal!) user-space pthreads
  implementation.  The exciting bits are in new file vg_scheduler.c.
  This contains thread management and scheduling, including nasty crud
  to do with making some syscalls (read,write,nanosleep) nonblocking.
  Also implementation of pthread_ functions: create join
  mutex_{create,destroy,lock,unlock} and cancel.

* As a side effect of the above, major improvements to signal handling
  and to the client-request machinery.  This is now used to intercept
  malloc/free etc too; the hacky way this is done before is gone.
  Another side effect is that vg_dispatch.S is greatly simplified.
  Also, the horrible hacks to do with delivering signals to threads
  blocked in syscalls are gone, since the new mechanisms cover this case
  easily.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@52
2002-04-12 11:12:52 +00:00
Julian Seward
5b1ca0492b Detect FPU instructions which set %EFLAGS and mark the resulting
UInstrs accordingly.  Fixes a bug in the simulated CPU in which the
results of f{u}comi{p} FPU insns were ignored, potentially leading to
wrong program behaviour.  This will only have happened to people using
P6/P7/K7 class CPUs.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@30
2002-03-24 13:52:19 +00:00
Julian Seward
13c77e7c76 Implement DAA as well as DAS. Byrial Jensen <byrial@image.dk>
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@22
2002-03-24 11:54:07 +00:00
Julian Seward
ff2c1db04a (merge from 20020320)
Modify codegen_SAHF so the instrumenter doesn't generate spurious
value errors if parts of %eax other than %ah are undefined.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13
2002-03-24 10:03:17 +00:00
Julian Seward
01772f27ae (merge from 20020320)
Implement x86 das instruction.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12
2002-03-24 10:00:09 +00:00
Julian Seward
72a784f3b1 Initial revision
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2
2002-03-22 01:27:54 +00:00