]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
20 years agoPlay a few more rounds of the SSE game on amd64.
Julian Seward [Thu, 5 May 2005 12:05:54 +0000 (12:05 +0000)] 
Play a few more rounds of the SSE game on amd64.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1162

20 years agoMore %flags-helpers tuning.
Julian Seward [Thu, 5 May 2005 12:05:11 +0000 (12:05 +0000)] 
More %flags-helpers tuning.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1161

20 years agoUpdate comment.
Julian Seward [Thu, 5 May 2005 12:04:14 +0000 (12:04 +0000)] 
Update comment.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1160

20 years agox86 guest: generate Iop_Neg* in the x86->IR phase. Intent is to
Julian Seward [Tue, 3 May 2005 12:20:15 +0000 (12:20 +0000)] 
x86 guest: generate Iop_Neg* in the x86->IR phase.  Intent is to
ensure that the non-shadow (real) computation done by the program will
fail if Iop_Neg* is incorrectly handled somehow.  Until this point,
Iop_Neg* is only generated by memcheck and so it will not be obvious
if it is mishandled.  IOW, this commit enhances verifiability of the
x86-IR-x86 pipeline.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1159

20 years agoGenerate better code for CmpNEZ64(Or64(x,y)), a common idiom resulting
Julian Seward [Tue, 3 May 2005 09:09:27 +0000 (09:09 +0000)] 
Generate better code for CmpNEZ64(Or64(x,y)), a common idiom resulting
from memchecking of FP code.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1158

20 years agoMemchecking very large BBs of FP insns on x86 sometimes needs a lot of
Julian Seward [Tue, 3 May 2005 09:08:23 +0000 (09:08 +0000)] 
Memchecking very large BBs of FP insns on x86 sometimes needs a lot of
spill slots.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1157

20 years agoWhen handling 'sbb %reg,%reg', first put zero into %reg. This removes
Julian Seward [Mon, 2 May 2005 17:07:02 +0000 (17:07 +0000)] 
When handling 'sbb %reg,%reg', first put zero into %reg.  This removes
the false result dependency on the previous value of %reg.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1156

20 years agoMinor tweakage: use testl rather than andl in three places on the
Julian Seward [Mon, 2 May 2005 16:16:15 +0000 (16:16 +0000)] 
Minor tweakage: use testl rather than andl in three places on the
basis that andl trashes the tested register whereas testl doesn't.  In
two out of the three cases this makes no difference since the tested
register is a copy of some other register anyway, but hey.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1155

20 years agoMinor cleanups.
Julian Seward [Mon, 2 May 2005 15:52:44 +0000 (15:52 +0000)] 
Minor cleanups.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1154

20 years agoGet rid of some functions made redundant by recent isel reorganisation.
Julian Seward [Mon, 2 May 2005 10:54:34 +0000 (10:54 +0000)] 
Get rid of some functions made redundant by recent isel reorganisation.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1153

20 years agoDon't complain endlessly about missing folding rule for Iop_64HLto128.
Julian Seward [Mon, 2 May 2005 10:47:22 +0000 (10:47 +0000)] 
Don't complain endlessly about missing folding rule for Iop_64HLto128.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1152

20 years agoHandle CmpNEZ16.
Julian Seward [Wed, 27 Apr 2005 13:39:35 +0000 (13:39 +0000)] 
Handle CmpNEZ16.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1151

20 years agoHandle various more primops, and reorganise iselCondCode_wrk in line
Julian Seward [Wed, 27 Apr 2005 11:55:08 +0000 (11:55 +0000)] 
Handle various more primops, and reorganise iselCondCode_wrk in line
with similar reorg on x86 side.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1150

20 years agoEmit 'negq'.
Julian Seward [Wed, 27 Apr 2005 11:53:23 +0000 (11:53 +0000)] 
Emit 'negq'.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1149

20 years ago* Use new 64-to/from-{16,8,1} conversion primops
Julian Seward [Wed, 27 Apr 2005 11:52:40 +0000 (11:52 +0000)] 
* Use new 64-to/from-{16,8,1} conversion primops

* disable "Z after SUBW" specialisation which apparently causes
  xedit to fail for unknown reasons

git-svn-id: svn://svn.valgrind.org/vex/trunk@1148

20 years agoUse new 64-to/from-{16,8,1} conversion primops instead of going via
Julian Seward [Wed, 27 Apr 2005 11:50:56 +0000 (11:50 +0000)] 
Use new 64-to/from-{16,8,1} conversion primops instead of going via
Ity_I32.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1147

20 years agoAdd even more 64-bit integer primops (sigh)
Julian Seward [Wed, 27 Apr 2005 11:42:44 +0000 (11:42 +0000)] 
Add even more 64-bit integer primops (sigh)

git-svn-id: svn://svn.valgrind.org/vex/trunk@1146

20 years ago* Enhance the x86 instruction selector to generate for the primops
Julian Seward [Tue, 26 Apr 2005 23:39:45 +0000 (23:39 +0000)] 
* Enhance the x86 instruction selector to generate for the primops
  introduced in rev 1144.

* Rearrange iselCondCode and introduce a few new patterns which
  deal better with the IR that Memcheck commonly generates

git-svn-id: svn://svn.valgrind.org/vex/trunk@1145

20 years agoAdd a few new primops which allow for more concise expression of
Julian Seward [Tue, 26 Apr 2005 23:34:34 +0000 (23:34 +0000)] 
Add a few new primops which allow for more concise expression of
the instrumentation Memcheck generates:

* CmpNEZ{8,16,32,64}, which are equivalent to CmpNE<sz> with one
  argument zero

* Neg{8,16,32,64}, which is equivalent to Sub<sz> with the first
  argument zero

For 64-bit platforms, add these primops.  This gives a complete set of
primops for conversions between the integral types (I8, I16, I32,
I64), so that a widening/narrowing from any type to any other type can
be achieved in a single primop:

* Iop_8Uto64, Iop_8Sto64, Iop_16Uto64, Iop_16Sto64

* Iop_64to8, Iop_64to16

git-svn-id: svn://svn.valgrind.org/vex/trunk@1144

20 years agoAdd various %rflag-helper specialisation cases and fast paths. This
Julian Seward [Tue, 26 Apr 2005 01:53:48 +0000 (01:53 +0000)] 
Add various %rflag-helper specialisation cases and fast paths.  This
more or less doubles performance of the baseline simulation on integer
code.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1143

20 years agoHandle more cases, and a bit of tuning.
Julian Seward [Tue, 26 Apr 2005 01:52:29 +0000 (01:52 +0000)] 
Handle more cases, and a bit of tuning.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1142

20 years agoAdd 64-bit comparisons.
Julian Seward [Tue, 26 Apr 2005 01:52:01 +0000 (01:52 +0000)] 
Add 64-bit comparisons.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1141

20 years agoIncrease number of integer registers in use from 3 to 8.
Julian Seward [Tue, 26 Apr 2005 01:51:24 +0000 (01:51 +0000)] 
Increase number of integer registers in use from 3 to 8.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1140

20 years agoHandle a couple more memcheck-generated primops. With this, I can run
Julian Seward [Sun, 24 Apr 2005 00:26:37 +0000 (00:26 +0000)] 
Handle a couple more memcheck-generated primops.  With this, I can run
konqueror on memcheck on amd64.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1139

20 years agoHandle some artefacts resulting from memchecking of x87 floating-point
Julian Seward [Sat, 23 Apr 2005 23:41:46 +0000 (23:41 +0000)] 
Handle some artefacts resulting from memchecking of x87 floating-point
code (I64-typed PutI/GetI).

git-svn-id: svn://svn.valgrind.org/vex/trunk@1138

20 years agoMore code-generation cases.
Julian Seward [Sat, 23 Apr 2005 01:15:47 +0000 (01:15 +0000)] 
More code-generation cases.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1137

20 years agoUpdate.
Julian Seward [Fri, 22 Apr 2005 21:21:09 +0000 (21:21 +0000)] 
Update.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1136

20 years agoComment-only change.
Julian Seward [Fri, 22 Apr 2005 21:20:47 +0000 (21:20 +0000)] 
Comment-only change.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1135

20 years agorm'd.
Julian Seward [Thu, 21 Apr 2005 01:57:44 +0000 (01:57 +0000)] 
rm'd.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1134

20 years agoAdd an identity, Or8(x,0) --> x.
Julian Seward [Thu, 21 Apr 2005 01:35:48 +0000 (01:35 +0000)] 
Add an identity, Or8(x,0) --> x.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1133

20 years agoFix some more insn selection cases required by Memcheck.
Julian Seward [Wed, 20 Apr 2005 22:57:11 +0000 (22:57 +0000)] 
Fix some more insn selection cases required by Memcheck.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1132

20 years agoUpdate comment re PutI/GetI (comment-only change).
Julian Seward [Tue, 19 Apr 2005 23:06:11 +0000 (23:06 +0000)] 
Update comment re PutI/GetI (comment-only change).

git-svn-id: svn://svn.valgrind.org/vex/trunk@1131

20 years agoComplete implementation of pslldq/psrldq. Also some whitespace changes.
Julian Seward [Thu, 7 Apr 2005 17:31:27 +0000 (17:31 +0000)] 
Complete implementation of pslldq/psrldq.  Also some whitespace changes.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1130

20 years agoHandle bsr{w,l,q} and allow bsfq.
Julian Seward [Thu, 7 Apr 2005 02:03:52 +0000 (02:03 +0000)] 
Handle bsr{w,l,q} and allow bsfq.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1129

20 years agoFix comment.
Julian Seward [Thu, 7 Apr 2005 02:02:23 +0000 (02:02 +0000)] 
Fix comment.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1128

20 years agoFix a nasty assembler bug, in the handling of Set64, arising from
Julian Seward [Thu, 7 Apr 2005 02:01:23 +0000 (02:01 +0000)] 
Fix a nasty assembler bug, in the handling of Set64, arising from
confusion over whether we were looking at a complete integer register
number or just the lower 3 bits of it.  Rename functions pertaining to
messing with integer register numbers in an attempt to stop this
happening in future.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1127

20 years agoReinstate tests for bsf{w,l} and bsr{w,l}.
Julian Seward [Thu, 7 Apr 2005 01:56:21 +0000 (01:56 +0000)] 
Reinstate tests for bsf{w,l} and bsr{w,l}.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1126

20 years agoMore AMD64 instructions: sfence, movnti, bsf{w,l,q}
Julian Seward [Wed, 6 Apr 2005 20:01:56 +0000 (20:01 +0000)] 
More AMD64 instructions: sfence, movnti, bsf{w,l,q}

git-svn-id: svn://svn.valgrind.org/vex/trunk@1125

20 years agoComment-only changes
Julian Seward [Wed, 6 Apr 2005 10:27:11 +0000 (10:27 +0000)] 
Comment-only changes

git-svn-id: svn://svn.valgrind.org/vex/trunk@1124

20 years agoAs per r1121, avoid WaW stalls writing the guest state for movss mem->reg.
Julian Seward [Wed, 6 Apr 2005 01:45:44 +0000 (01:45 +0000)] 
As per r1121, avoid WaW stalls writing the guest state for movss mem->reg.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1123

20 years agoiselIntExpr64(const): save a precious register in the case where
Julian Seward [Wed, 6 Apr 2005 01:11:53 +0000 (01:11 +0000)] 
iselIntExpr64(const): save a precious register in the case where
the two halves have the same value.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1122

20 years agoWhen generating IR for movsd mem->reg, don't first write the entire
Julian Seward [Wed, 6 Apr 2005 01:11:08 +0000 (01:11 +0000)] 
When generating IR for movsd mem->reg, don't first write the entire
guest reg with zeroes and then overwrite the lower half.  This forces
the back end to generate code which creates huge write-after-write
stalls in the memory system of P4s due to the different sized writes.
This apparently small change reduces the run-time of one
sse2-intensive floating point program from 145 seconds to 90 seconds
(--tool=none).

git-svn-id: svn://svn.valgrind.org/vex/trunk@1121

20 years agoAdd a pattern for 64UtoV128(LDle:I64(addr)), so as to generate a
Julian Seward [Wed, 6 Apr 2005 00:47:01 +0000 (00:47 +0000)] 
Add a pattern for 64UtoV128(LDle:I64(addr)), so as to generate a
single movsd.  This fixes a common, poorly handed case in generating
sse2 code.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1120

20 years agoWhenever the flags thunk is set, fill in all the fields, even NDEP
Julian Seward [Tue, 5 Apr 2005 01:54:19 +0000 (01:54 +0000)] 
Whenever the flags thunk is set, fill in all the fields, even NDEP
which isn't usually used.  This makes redundant-PUT elimination work
better, fixing a rather subtle optimisation bug.  For at least one
floating-point case this gives a significant speedup.  Consider a bb
like this:

    (no flag setting insns before inc)
    inc ...
    (no flag setting insns)
    add ...

inc sets CC_OP, CC_DEP1 and CC_NDEP; the latter is expensive because a
call to calculate_eflags_c is required.

add sets CC_OP, CC_DEP1 and CC_DEP2.  The CC_NDEP value is now
irrelevant, but because CC_NDEP is not overwritten, iropt cannot
remove the previous assignment to it, and so the expensive helper call
remains even though it is irrelevant.

This commit fixes that: By always setting NDEP to zero whenever its
value will be unused, any previous assignment to it will be removed by
iropt.

This change should be propagated to the amd64 front end too.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1119

20 years ago#include <rude_words.h>. The recent change of denotation of no-op IR
Julian Seward [Mon, 4 Apr 2005 23:12:54 +0000 (23:12 +0000)] 
#include <rude_words.h>.  The recent change of denotation of no-op IR
statements from NULL to IRStmt_NoOp screwed up the how-much-to-unroll
heuristics in iropt, resulting in iropt being significantly less
enthusiastic about unrolling than it was before the change.  Gaaah!
This commit should fix it.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1118

20 years agoReinstate ADC Iv, eAX.
Julian Seward [Sun, 3 Apr 2005 14:59:54 +0000 (14:59 +0000)] 
Reinstate ADC Iv, eAX.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1117

20 years agoRemember to clear C2 after fsincos, as that actually makes it work
Julian Seward [Fri, 1 Apr 2005 20:19:20 +0000 (20:19 +0000)] 
Remember to clear C2 after fsincos, as that actually makes it work
right with reasonable-sized inputs.  This confirms fsincos as the
golden lemon of x87 floating point instructions, since Vex has by now
chomped through vast amounts of floating point code on x86 and this is
the first time this bug has come to light.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1116

20 years agoSupport a few more insns I ran across whilst trying to start up
Julian Seward [Wed, 30 Mar 2005 23:20:47 +0000 (23:20 +0000)] 
Support a few more insns I ran across whilst trying to start up
konqueror (mostly successfully) and mozilla (promising but
unsuccessful).

git-svn-id: svn://svn.valgrind.org/vex/trunk@1115

20 years agoAdd a folding rule for Mul64.
Julian Seward [Wed, 30 Mar 2005 23:19:46 +0000 (23:19 +0000)] 
Add a folding rule for Mul64.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1114

20 years agoGenerate instruction-pointer offsets too.
Julian Seward [Wed, 30 Mar 2005 18:40:23 +0000 (18:40 +0000)] 
Generate instruction-pointer offsets too.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1113

20 years agoRe-enable 'xchg reg, mem'.
Julian Seward [Wed, 30 Mar 2005 18:20:48 +0000 (18:20 +0000)] 
Re-enable 'xchg reg, mem'.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1112

20 years agoUse cpp symbol __x86_64__ rather than __amd64__ on the advice of
Julian Seward [Tue, 29 Mar 2005 21:35:08 +0000 (21:35 +0000)] 
Use cpp symbol __x86_64__ rather than __amd64__ on the advice of
Michael Matz.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1111

20 years agoFix incorrect DIP.
Julian Seward [Tue, 29 Mar 2005 21:33:11 +0000 (21:33 +0000)] 
Fix incorrect DIP.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1110

20 years agoIncrease default max bb size from 50 to 60 guest instructions.
Julian Seward [Tue, 29 Mar 2005 21:32:41 +0000 (21:32 +0000)] 
Increase default max bb size from 50 to 60 guest instructions.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1109

20 years agomore icc -Wall cleanups
Julian Seward [Mon, 28 Mar 2005 00:46:27 +0000 (00:46 +0000)] 
more icc -Wall cleanups

git-svn-id: svn://svn.valgrind.org/vex/trunk@1108

20 years agoHandle Grp8 w/immediate arg.
Julian Seward [Sun, 27 Mar 2005 17:59:45 +0000 (17:59 +0000)] 
Handle Grp8 w/immediate arg.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1107

20 years agoFix a stupid bug causing FP instructions to sometimes be ignored, and
Julian Seward [Sun, 27 Mar 2005 17:36:08 +0000 (17:36 +0000)] 
Fix a stupid bug causing FP instructions to sometimes be ignored, and
fill in various missing cases.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1106

20 years agoImplement yet more amd64 instructions.
Julian Seward [Sun, 27 Mar 2005 05:08:32 +0000 (05:08 +0000)] 
Implement yet more amd64 instructions.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1105

20 years agoRe-enable a couple of SSE MOVQ cases.
Julian Seward [Sun, 27 Mar 2005 04:48:32 +0000 (04:48 +0000)] 
Re-enable a couple of SSE MOVQ cases.

Observe that MOVQ is probably subtly broken on both x86 and amd64 wrt
zeroing out upper halves of destination registers.  This should be
checked out.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1104

20 years agoFix many amd64 floating point cases that were missing.
Julian Seward [Sun, 27 Mar 2005 04:01:15 +0000 (04:01 +0000)] 
Fix many amd64 floating point cases that were missing.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1103

20 years agoImplement ldmxcsr/stmxcsr.
Julian Seward [Sun, 27 Mar 2005 02:22:32 +0000 (02:22 +0000)] 
Implement ldmxcsr/stmxcsr.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1102

20 years agoLooks like I forgot to tell memcheck not to bother to track
Julian Seward [Sun, 27 Mar 2005 02:21:52 +0000 (02:21 +0000)] 
Looks like I forgot to tell memcheck not to bother to track
definedness of the sse rounding mode info.  Fixed.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1101

20 years agoMore paranoia
Julian Seward [Sun, 27 Mar 2005 02:20:56 +0000 (02:20 +0000)] 
More paranoia

git-svn-id: svn://svn.valgrind.org/vex/trunk@1100

20 years agoamd64 front/back end stuff needed to support x87 extended-real
Julian Seward [Sat, 26 Mar 2005 21:50:31 +0000 (21:50 +0000)] 
amd64 front/back end stuff needed to support x87 extended-real
loads/stores.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1099

20 years agoFix comment.
Julian Seward [Sat, 26 Mar 2005 21:49:42 +0000 (21:49 +0000)] 
Fix comment.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1098

20 years agoMove some conversion functions (IEEE double <-> x87 extended-real
Julian Seward [Sat, 26 Mar 2005 20:33:38 +0000 (20:33 +0000)] 
Move some conversion functions (IEEE double <-> x87 extended-real
format) into their own module, so they can be shared by the x86 and
amd64 front ends.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1097

20 years agoGenerate IRStmt_IMark so that cachegrind et al work on amd64.
Julian Seward [Sat, 26 Mar 2005 13:15:23 +0000 (13:15 +0000)] 
Generate IRStmt_IMark so that cachegrind et al work on amd64.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1096

20 years agoMove an assertion to a better place.
Julian Seward [Sat, 26 Mar 2005 13:14:54 +0000 (13:14 +0000)] 
Move an assertion to a better place.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1095

20 years agoUpdate the embedded memcheck instrumenter so it works again.
Julian Seward [Sat, 26 Mar 2005 13:02:20 +0000 (13:02 +0000)] 
Update the embedded memcheck instrumenter so it works again.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1094

20 years agoUpdate comment.
Julian Seward [Sat, 26 Mar 2005 12:57:39 +0000 (12:57 +0000)] 
Update comment.

Stare at sanity checks but still fail to figure out how to make them
cheaper.  The register allocator's sanity checks consume 15%-20% of
the total running time of Vex.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1093

20 years agoicc -Wall cleanups
Julian Seward [Sat, 26 Mar 2005 11:59:23 +0000 (11:59 +0000)] 
icc -Wall cleanups

git-svn-id: svn://svn.valgrind.org/vex/trunk@1092

20 years agoreinstate test_misc()
Julian Seward [Sat, 26 Mar 2005 11:58:50 +0000 (11:58 +0000)] 
reinstate test_misc()

git-svn-id: svn://svn.valgrind.org/vex/trunk@1091

20 years agoFix bug? in do_put_x87 which would have resulting in FLDENV setting to
Julian Seward [Fri, 25 Mar 2005 22:39:28 +0000 (22:39 +0000)] 
Fix bug? in do_put_x87 which would have resulting in FLDENV setting to
zero registers which the to-be-loaded tag word indicates are empty.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1090

20 years agoThe helper for FXAM wasn't setting the C1 flag correctly. This bug
Julian Seward [Fri, 25 Mar 2005 22:33:54 +0000 (22:33 +0000)] 
The helper for FXAM wasn't setting the C1 flag correctly.  This bug
is more-or-less undetectable at least if you use fstsw to examine
the results of FXAM, since fstsw doesn't copy C1.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1089

20 years agoDo a sane level of testing.
Julian Seward [Fri, 25 Mar 2005 22:32:39 +0000 (22:32 +0000)] 
Do a sane level of testing.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1088

20 years agoPut some ULLs at the end of 64-bit constants for good measure.
Julian Seward [Fri, 25 Mar 2005 20:31:46 +0000 (20:31 +0000)] 
Put some ULLs at the end of 64-bit constants for good measure.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1087

20 years agoicc -Wall fixes
Julian Seward [Fri, 25 Mar 2005 20:30:58 +0000 (20:30 +0000)] 
icc -Wall fixes

git-svn-id: svn://svn.valgrind.org/vex/trunk@1086

20 years agoicc -Wall fixes
Julian Seward [Fri, 25 Mar 2005 20:30:32 +0000 (20:30 +0000)] 
icc -Wall fixes

git-svn-id: svn://svn.valgrind.org/vex/trunk@1085

20 years agoImplement %ffree.
Julian Seward [Fri, 25 Mar 2005 20:30:00 +0000 (20:30 +0000)] 
Implement %ffree.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1084

20 years agoUpdate stuff in test harness.
Julian Seward [Fri, 25 Mar 2005 20:29:35 +0000 (20:29 +0000)] 
Update stuff in test harness.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1083

20 years agoVery inadequate test program for fxam.
Julian Seward [Fri, 25 Mar 2005 20:29:00 +0000 (20:29 +0000)] 
Very inadequate test program for fxam.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1082

20 years agoPlacate icc -Wall. Required hand-to-hand combat with icc, and I may
Julian Seward [Fri, 25 Mar 2005 14:39:37 +0000 (14:39 +0000)] 
Placate icc -Wall.  Required hand-to-hand combat with icc, and I may
have broken something.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1081

20 years agoPlacate icc -Wall.
Julian Seward [Fri, 25 Mar 2005 14:07:11 +0000 (14:07 +0000)] 
Placate icc -Wall.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1080

20 years agoIcc typechecker police.
Julian Seward [Fri, 25 Mar 2005 13:48:55 +0000 (13:48 +0000)] 
Icc typechecker police.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1079

20 years agoFix some isel cases pertaining to 1-bit values. This makes lackey
Julian Seward [Thu, 24 Mar 2005 20:40:12 +0000 (20:40 +0000)] 
Fix some isel cases pertaining to 1-bit values.  This makes lackey
work on amd64.  Yay!

git-svn-id: svn://svn.valgrind.org/vex/trunk@1078

20 years agoDon't shout about kludged rdtsc
Julian Seward [Thu, 24 Mar 2005 20:39:05 +0000 (20:39 +0000)] 
Don't shout about kludged rdtsc

git-svn-id: svn://svn.valgrind.org/vex/trunk@1077

20 years agoReinstate 'xadd' instruction.
Julian Seward [Wed, 23 Mar 2005 13:34:11 +0000 (13:34 +0000)] 
Reinstate 'xadd' instruction.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1076

20 years agoRe-enable a few cases.
Julian Seward [Wed, 23 Mar 2005 11:36:48 +0000 (11:36 +0000)] 
Re-enable a few cases.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1075

20 years agoMake rdtsc return 1 instead of 0, to stop glibc's resolver looping.
Julian Seward [Wed, 23 Mar 2005 11:35:55 +0000 (11:35 +0000)] 
Make rdtsc return 1 instead of 0, to stop glibc's resolver looping.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1074

20 years agoDeal more rationally with LOCK prefixes, correct at least in the way
Julian Seward [Wed, 23 Mar 2005 11:25:12 +0000 (11:25 +0000)] 
Deal more rationally with LOCK prefixes, correct at least in the way
Valgrind-3.0 intends to use Vex.  This should be applied to the x86 line
too.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1073

20 years ago* widening (u)mulq from memory operand
Julian Seward [Wed, 23 Mar 2005 03:39:55 +0000 (03:39 +0000)] 
* widening (u)mulq from memory operand
* movb imm8,%bh (untested)

git-svn-id: svn://svn.valgrind.org/vex/trunk@1072

20 years agoFix silly bug introduced in r1066.
Julian Seward [Wed, 23 Mar 2005 03:02:50 +0000 (03:02 +0000)] 
Fix silly bug introduced in r1066.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1071

20 years agoWe don't need two copies of this -- there's another in orig_x86.
Julian Seward [Tue, 22 Mar 2005 14:00:31 +0000 (14:00 +0000)] 
We don't need two copies of this -- there's another in orig_x86.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1070

20 years agoTurns out the recent IRStmt_NoOp hackery broke the IR optimiser quite
Julian Seward [Tue, 22 Mar 2005 02:24:05 +0000 (02:24 +0000)] 
Turns out the recent IRStmt_NoOp hackery broke the IR optimiser quite
seriously.  It was still transforming correctly, but many of the
transformations had been hampered by no longer being able to recognise
no-ops properly.  This hopefully fixes it.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1069

20 years agoamd64 back end: deal with (ignore) Ist_IMark and Ist_NoOp
Julian Seward [Tue, 22 Mar 2005 00:15:00 +0000 (00:15 +0000)] 
amd64 back end: deal with (ignore) Ist_IMark and Ist_NoOp

git-svn-id: svn://svn.valgrind.org/vex/trunk@1068

20 years agoGenerate offsets needed for V on amd64.
Julian Seward [Mon, 21 Mar 2005 17:41:45 +0000 (17:41 +0000)] 
Generate offsets needed for V on amd64.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1067

20 years agoMake several more files compile cleanly with icc -Wall. Hopefully
Julian Seward [Mon, 21 Mar 2005 03:11:17 +0000 (03:11 +0000)] 
Make several more files compile cleanly with icc -Wall.  Hopefully
this doesn't break anything.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1066

20 years agoThe "icc -Wall" placation project rumbles onward ...
Julian Seward [Mon, 21 Mar 2005 02:47:42 +0000 (02:47 +0000)] 
The "icc -Wall" placation project rumbles onward ...

git-svn-id: svn://svn.valgrind.org/vex/trunk@1065

20 years agoThe Icc typechecker police have been round banging on our doors again.
Julian Seward [Mon, 21 Mar 2005 01:06:20 +0000 (01:06 +0000)] 
The Icc typechecker police have been round banging on our doors again.
Placating icc -Wall is a Herculean task; I don't know if it will ever
get completed.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1064

20 years agoBring up-to-date.
Julian Seward [Mon, 21 Mar 2005 01:03:49 +0000 (01:03 +0000)] 
Bring up-to-date.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1063