Julian Seward
0d26e5ca99
New function LibVEX_Version, returning version string automagically
...
generated by 'svnversion -n .'. Only updated when you do 'make
version'.
git-svn-id: svn://svn.valgrind.org/vex/trunk@674
2004-12-20 04:37:50 +00:00
Julian Seward
b9a7b8a138
Move the IR tree matcher into its own module to get rid of
...
duplication.
git-svn-id: svn://svn.valgrind.org/vex/trunk@673
2004-12-20 04:12:14 +00:00
Cerion Armour-Brown
f022a59a1d
Skeleton work on host-arm/isel, plus some cleaning up of hdefs
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@672
2004-12-17 20:30:21 +00:00
Julian Seward
7a8ecf526c
Don't squawk about kludged RDTSC, and update list of limitations.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@671
2004-12-17 19:14:24 +00:00
Cerion Armour-Brown
8408b3c81d
Cleaned up hdefs.h, fleshed out hdefs.c
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@670
2004-12-16 14:06:34 +00:00
Cerion Armour-Brown
99e14dc8ee
ahem - copy/paste comment error
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@669
2004-12-16 12:10:59 +00:00
Cerion Armour-Brown
018026146f
First stab at host arm instruction defs
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@668
2004-12-16 11:50:19 +00:00
Julian Seward
9f6ba7be6f
constant folder: try a bit harder to clean up memcheck's output
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@667
2004-12-16 11:41:06 +00:00
Julian Seward
15a71c4eba
Special case for CmpNE64(x,0), which is frequently generated when
...
Memchecking floating point code.
git-svn-id: svn://svn.valgrind.org/vex/trunk@666
2004-12-16 11:40:20 +00:00
Julian Seward
054153f439
More needles in haystacks: pmovmskb (sse): pass args to helper in the
...
correct order :-)
git-svn-id: svn://svn.valgrind.org/vex/trunk@665
2004-12-16 11:39:04 +00:00
Julian Seward
c2c2e989f8
Don't inadvertantly invert the D flag when doing pushfl. Real needle
...
in a haystack job, finding this one.
git-svn-id: svn://svn.valgrind.org/vex/trunk@664
2004-12-16 02:54:54 +00:00
Julian Seward
18ee709ba4
Implement pusha/popa.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@663
2004-12-15 18:43:39 +00:00
Julian Seward
77788899d8
More SSE2 cases needed for gsl-1.5 regtests with icc -O -xW (SSE2).
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@662
2004-12-15 17:42:58 +00:00
Cerion Armour-Brown
da7f752f5b
Added DIP()s everywhere, removed all the vex_printf()s
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@661
2004-12-15 13:04:06 +00:00
Julian Seward
667e964a6e
x86 guest: implement SSE1 movaps G -> E (stores)
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@660
2004-12-15 12:35:00 +00:00
Julian Seward
5bc8ffc865
#if 0 some unused fns in an attempt to reduce the noise level from gcc.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@659
2004-12-15 12:21:28 +00:00
Julian Seward
c349b5c2d5
Give different emulation warnings for setting of %mxcsr.fz and %mxcsr.daz.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@658
2004-12-15 12:13:52 +00:00
Julian Seward
1405b9db10
Fixes to get gsl-1.5 regressions to work with icc-8.0 -xK (SSE1)
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@657
2004-12-15 11:57:58 +00:00
Cerion Armour-Brown
4bfc335ad9
fixed oldFlagC usage
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@656
2004-12-14 12:08:09 +00:00
Julian Seward
04cb55aaee
Fix push/pop/load/store of segment registers.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@655
2004-12-14 10:00:16 +00:00
Julian Seward
b8c23f6482
* x86 host: make SSE spills/restores work
...
* x86 guest: fill in some missing SSE cases
git-svn-id: svn://svn.valgrind.org/vex/trunk@654
2004-12-14 01:16:59 +00:00
Julian Seward
d6dea91979
Improve redundant-PutI elimination a bit, so it is not completely
...
fooled by some of the stupidities from guest x86 MMX code.
git-svn-id: svn://svn.valgrind.org/vex/trunk@653
2004-12-13 18:22:48 +00:00
Julian Seward
282caf54c3
Even more folding rules.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@652
2004-12-13 14:14:16 +00:00
Julian Seward
71d97365c4
Mechanism for dealing with failures of instruction decodes, and also
...
of LibVEX-provided address translation.
git-svn-id: svn://svn.valgrind.org/vex/trunk@651
2004-12-13 14:09:01 +00:00
Julian Seward
106fd4b1f7
x86 guest: simulate LDT/GDT enough that code using segment override
...
prefixes can work.
git-svn-id: svn://svn.valgrind.org/vex/trunk@650
2004-12-13 10:48:19 +00:00
Julian Seward
b69b1851ee
Folding rule for Iop_64to32.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@649
2004-12-13 10:47:15 +00:00
Julian Seward
8b99fb8b87
x86 guest/host: fix enough 128-bit vector stuff that memcheck works for
...
SSE2. Added a new Iop_Not128 bit primop and generate at least tolerable
SSE code for it.
git-svn-id: svn://svn.valgrind.org/vex/trunk@648
2004-12-12 16:46:47 +00:00
Julian Seward
62b1fa8079
x86 host: Stuff in support of memchecking of 64x2 vector FP.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@647
2004-12-10 21:45:38 +00:00
Julian Seward
e02f9b6c7a
Stuff needed for Memcheck of SSE1 instructions.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@646
2004-12-10 18:56:29 +00:00
Cerion Armour-Brown
c27dff378d
Dealt with more 'unpredictables' (all of them?)
...
Reworked some bad code - was assigning multiple times to an IRTemp (apparently
not allowed?!)
git-svn-id: svn://svn.valgrind.org/vex/trunk@645
2004-12-10 15:28:43 +00:00
Julian Seward
87c3a34a1b
More support for memchecking 128-bit SIMD code.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@644
2004-12-10 14:59:57 +00:00
Cerion Armour-Brown
eff25d02ed
Dealt with undefined instr's properly
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@643
2004-12-10 11:43:10 +00:00
Cerion Armour-Brown
e2419dbd5d
added padding to VexGuestArmState
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@642
2004-12-10 10:46:16 +00:00
Cerion Armour-Brown
79595c01ac
Finished dis_branch, so we get IR code for a complete bb now - yay!
...
Fixed a bunch of type errors picked up by the sanity checker
git-svn-id: svn://svn.valgrind.org/vex/trunk@641
2004-12-10 10:18:58 +00:00
Julian Seward
cca70dff12
Finish almost all SSE2 integer instructions. (!)
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@640
2004-12-10 01:48:18 +00:00
Julian Seward
e5119dcd20
x86 host/guest: SSE2 integer shifts and subtracts
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@639
2004-12-09 23:25:14 +00:00
Cerion Armour-Brown
09d1a87ef6
Reworked dis_loadstore_mult(): load/store multiple
...
Reworked data processing instrs:
- all dpi's are dealt with in dis_dataproc()
- dis_shifter_op() finds the shift expression
- directly if 'immediate', else via dis_shift(), dis_rotate
- returns the shifter_carry_out
(would rather not to do this... how to avoid it?!)
Added dis_loadstore_w_ub : load/store word|unsigned byte
First stab at dis_branch(), but not there yet.
Laid out disInstr to parse the entire arm instruction set.
- was the easiest thing to do to avoid all the undefined and not-yet-implemented instructions.
Some work on flag calculations - not yet right!
git-svn-id: svn://svn.valgrind.org/vex/trunk@638
2004-12-09 19:04:57 +00:00
Julian Seward
90969d6910
x86 guest/host: implement a whole bunch of SSE2 integer insns
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@637
2004-12-09 03:44:34 +00:00
Julian Seward
f273b21842
IR level for support of 128 integer SIMD operations. Use this to do
...
SSE2 integer operations (x86 guest/host).
git-svn-id: svn://svn.valgrind.org/vex/trunk@636
2004-12-09 00:39:32 +00:00
Julian Seward
a310e39a1f
Delete commented-out bits of the old UCode insn decoder.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@635
2004-12-08 17:01:23 +00:00
Julian Seward
b4c4fd0ab9
x86 guest: finish SSE2 floating point insns.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@634
2004-12-08 14:37:10 +00:00
Julian Seward
025d4369bb
x86 guest: another stack of SSE2 insns.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@633
2004-12-08 12:31:22 +00:00
Julian Seward
a234d1dc97
x86 guest: Implement a whole bunch of SSE2 instructions, mostly
...
int-float conversions. Very repetitive.
git-svn-id: svn://svn.valgrind.org/vex/trunk@632
2004-12-07 19:02:18 +00:00
Julian Seward
43641ec037
Redundant-Get elimination: only do the substitution when the types
...
match. Not doing so leads to incorrectly typed IR.
git-svn-id: svn://svn.valgrind.org/vex/trunk@631
2004-12-07 19:00:57 +00:00
Julian Seward
867ab938c4
Copy-n-paste 32x4 floating point stuff into 64x2 floating point stuff so
...
as to form a basis for SSE2 floating point support.
git-svn-id: svn://svn.valgrind.org/vex/trunk@630
2004-12-07 11:16:04 +00:00
Julian Seward
c73a5a146c
x86 guest: Implement various insns:
...
ldmxcsr/stmxcsr
fldenv/fstenv
prefetch of various flavours (no-op for us)
fclex (no-op for us)
Some segment reg stuff, but nothing usable yet
git-svn-id: svn://svn.valgrind.org/vex/trunk@629
2004-12-06 14:29:12 +00:00
Julian Seward
8970b347b9
Tests for x86 fldenv/fstenv; also fix error in frstor test.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@628
2004-12-06 14:26:28 +00:00
Julian Seward
3ffae38d0e
Program for testing setting of MXCSR.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@627
2004-12-06 12:15:05 +00:00
Julian Seward
c70e19435b
Fix bug exposed by improved insn_sse test.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@626
2004-12-06 00:36:25 +00:00
Julian Seward
ed9a19d140
Another test case, containing a lot of FP code, which generally stresses
...
iropt quite a lot.
git-svn-id: svn://svn.valgrind.org/vex/trunk@625
2004-12-06 00:00:04 +00:00