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
Julian Seward
204930a489
Move to new place.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@624
2004-12-05 23:54:32 +00:00
Julian Seward
f7d387c46d
Contains most fpu, mmx and sse1 insns.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@623
2004-12-05 23:53:22 +00:00
Julian Seward
0e0cb11e95
Place for storing x86 original code files.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@622
2004-12-05 23:51:54 +00:00
Julian Seward
ae14891105
Make small procedures to add/sub small amounts from esp.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@621
2004-12-05 21:22:38 +00:00
Julian Seward
15c112611b
Finish SSE1 instructions! Finallyatlast.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@620
2004-12-05 19:29:45 +00:00
Julian Seward
6e6f665b0f
Fix a load of confusion with SSE scalar float insns and memory.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@619
2004-12-05 15:42:05 +00:00
Julian Seward
f76dbe65ed
Even more SSE insns.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@618
2004-12-05 02:47:40 +00:00
Julian Seward
1b7069f596
x86 host/guest: even more SSE instructions
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@617
2004-12-04 20:33:02 +00:00
Julian Seward
2875f2e1f9
Rationalisation/cleanup of float to/from int conversions and rounding
...
modes associated with them.
git-svn-id: svn://svn.valgrind.org/vex/trunk@616
2004-12-04 14:36:09 +00:00
Julian Seward
b69ba13305
x86 guest/host: a whole bunch more SSE instructions.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@615
2004-12-04 01:38:37 +00:00
Julian Seward
236f79b0a1
Add a bunch of easy SSE insns.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@614
2004-12-03 20:08:31 +00:00
Julian Seward
f172787ae4
Mucho messing around with x86 FP/SSE rounding modes etc. As a result
...
implement a bunch of SSE float-int conversion insns.
git-svn-id: svn://svn.valgrind.org/vex/trunk@613
2004-12-03 19:43:31 +00:00
Cerion Armour-Brown
347ec43cec
cleaned up dis_mov & dis_shift_lsl, and made a stab at dis_ldm_stm: load/store multiple
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@612
2004-12-03 18:54:08 +00:00
Julian Seward
28f8f4c261
Try to reduce the number of warnings gcc gives.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@611
2004-12-03 11:55:29 +00:00
Cerion Armour-Brown
713fee1473
trying to get shift_lsl to work + cleaned up a little
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@610
2004-12-03 11:16:42 +00:00
Julian Seward
40c52285d1
Add another comment and actually complete the commit message :-)
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@609
2004-12-02 23:36:20 +00:00
Julian Seward
415c39f175
Try to answer a few q
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@608
2004-12-02 23:35:18 +00:00
Cerion Armour-Brown
ef19019311
Ceri's first attempts at figuring out what the heck is going on!
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@607
2004-12-02 20:19:22 +00:00