Julian Seward
76d8f00edc
Make a start on SSE for x86 guest.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@602
2004-11-30 18:51:59 +00:00
Nicholas Nethercote
45357238cd
Added AMD64 skeleton, just defining LibVEX_GuestAMD64_initialise().
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@601
2004-11-30 15:56:47 +00:00
Julian Seward
0e29835d76
Loop unroller: do not unroll loops in which the conditional branch is
...
not Ijk_Boring, as that will cause events that should be passed to the
caller's scheduler, not to be.
git-svn-id: svn://svn.valgrind.org/vex/trunk@600
2004-11-30 13:40:29 +00:00
Julian Seward
f5a2a1606e
Add -Wmissing-prototypes as a flag.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@599
2004-11-30 13:37:21 +00:00
Julian Seward
4f365980c3
guest x86: fix x87 FP rounding modes enough so that
...
none/tests/x86/insn_fpu works correctly.
git-svn-id: svn://svn.valgrind.org/vex/trunk@598
2004-11-30 13:18:37 +00:00
Julian Seward
a5ff6638bb
guest x87: Add enough x87 FP gunk to get through
...
none/tests/x86/insn_fpu without dying.
git-svn-id: svn://svn.valgrind.org/vex/trunk@597
2004-11-30 12:30:11 +00:00
Nicholas Nethercote
b1be842d36
Make Valgrind's AMD64 and ARM ports compile again.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@596
2004-11-30 11:37:48 +00:00
Julian Seward
26338fd250
Create a new mechanism: "emulation warnings", which is a way for Vex
...
to report to whatever is using it that it cannot emulate precisely.
Net result is that a bb can exit with the guest state pointer set to
VEX_TRC_EMWARN. In this case, the (mandatory) guest state psuedo-reg
called "guest_EMWARN" holds a value of type VexEmWarn, indicating the
kind of problem encounted.
Use this to warn about approximations in the x87 FPU simulation:
unmasked exceptions not supported, round to +inf/-inf not supported,
precisions other than 80-bit not supported.
git-svn-id: svn://svn.valgrind.org/vex/trunk@595
2004-11-29 19:57:54 +00:00
Nicholas Nethercote
9167c47f04
Added %rip to the AMD64 guest state.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@594
2004-11-28 16:05:46 +00:00
Julian Seward
2e5eae7fe5
x86g_dirtyhelper_CPUID: Claim to be a P55C (Intel Pentium/MMX)
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@593
2004-11-26 19:34:34 +00:00
Julian Seward
c9f5e132ec
x86 guest: finish off MMX instructions. Blargh.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@592
2004-11-26 19:15:38 +00:00
Julian Seward
bf229ea067
x86 guest: implement fsave/frstor instructions
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@591
2004-11-26 17:57:40 +00:00
Julian Seward
a962f1bd3c
Make VEX define the special thread-return-code values it uses.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@590
2004-11-26 13:18:19 +00:00
Julian Seward
4578ef5697
Handle Ijk_Yield properly. This fixes V regtest "none/tests/yield".
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@589
2004-11-26 13:01:47 +00:00
Julian Seward
73835ad313
Implement "rep nop" (P4 pause).
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@588
2004-11-26 12:18:51 +00:00
Julian Seward
d95d9f6278
Test driver stuff for arm.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@587
2004-11-25 13:08:26 +00:00
Julian Seward
c398540562
Build stuff for arm.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@586
2004-11-25 13:07:51 +00:00
Julian Seward
5d6a73c1fc
Add a skeletal ARM insn decoder.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@585
2004-11-25 13:07:02 +00:00
Julian Seward
dedf93ac48
Start adding some ARM guest infrastructure stuff, but as a result get
...
diverted into a massive renaming of the x86 guest stuff so as to avoid
namespace clashes.
git-svn-id: svn://svn.valgrind.org/vex/trunk@584
2004-11-25 02:46:58 +00:00
Julian Seward
dd546662d2
Add a pseudo-guest-register to hold the 'next syscall number.'
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@583
2004-11-24 11:22:31 +00:00
Nicholas Nethercote
b36d3bfca1
Make Vex less verbose, so regression tests pass again.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@582
2004-11-23 17:11:49 +00:00
Julian Seward
4573c9a9f6
Make a start on a guest state definition for AMD64.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@581
2004-11-23 14:07:46 +00:00
Julian Seward
1b8dffc406
Do 32Uto64.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@580
2004-11-23 00:19:06 +00:00
Julian Seward
186d92f18f
Add a dummy ARM guest state include that Valgrind can be compiled
...
against.
git-svn-id: svn://svn.valgrind.org/vex/trunk@579
2004-11-22 16:02:34 +00:00
Julian Seward
30ca18634a
Make VEX's "Char" type always be signed, so as to bring it into line
...
with Valgrind conventions.
git-svn-id: svn://svn.valgrind.org/vex/trunk@578
2004-11-22 12:55:45 +00:00
Julian Seward
f109e70857
gcc-2.95 build fixes.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@577
2004-11-22 11:29:33 +00:00
Julian Seward
d46357cb3b
rec_alloc.c is defunct; reg_alloc2.c replaced it a while back.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@576
2004-11-22 11:26:51 +00:00
Julian Seward
9edc865c3e
Fix behaviour so that out-of-range shifts behave the same as on a
...
PIII.
git-svn-id: svn://svn.valgrind.org/vex/trunk@575
2004-11-21 19:22:35 +00:00
Julian Seward
a4d5612b43
Test each insn 25000 times with random data, rather than just once or
...
twice.
git-svn-id: svn://svn.valgrind.org/vex/trunk@574
2004-11-21 19:21:36 +00:00
Julian Seward
784eb72b6d
Fix various failings in the MMX simulation code.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@573
2004-11-21 17:41:09 +00:00
Julian Seward
0c8b3501cd
Add MMX shift-by-vector (not correct yet).
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@572
2004-11-21 17:04:50 +00:00
Julian Seward
805c7cab5f
Complete MMX and/or/xor/andn.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@571
2004-11-21 13:45:05 +00:00
Julian Seward
d74671c7d3
Implement a bunch more MMX insns.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@570
2004-11-21 12:30:18 +00:00
Julian Seward
ab7ff28c22
Some more MMX insns.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@569
2004-11-20 13:17:04 +00:00
Julian Seward
8bdbe7aba3
Partial support for MMX, using a low-performance scheme.
...
aAlso gets rid of some old FP stuff from toIR.c that wasn't ever going
to get used.
git-svn-id: svn://svn.valgrind.org/vex/trunk@568
2004-11-19 22:17:29 +00:00
Julian Seward
9a15edf80c
An MMX test program.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@567
2004-11-18 15:56:56 +00:00
Julian Seward
c4e28a3954
Nuke this useless bunch of tests.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@566
2004-11-18 15:38:37 +00:00
Julian Seward
c06717bc05
Restore ability to run with no instrumentation.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@565
2004-11-18 13:44:15 +00:00
Julian Seward
54c67ca962
CSE enhancements: handle binop(const,temp), and get rid of
...
unused load-from-memory case
git-svn-id: svn://svn.valgrind.org/vex/trunk@564
2004-11-18 13:43:24 +00:00
Julian Seward
4bbc49a210
x86 guest: finally redo marshalling of register-passed parameters so
...
that it's always correct (hopefully). If any of the regparm
parameters look like they might need a fixed register, compute them
all into temporaries and then move all the temps at the end into the
arg regs. OTOH, if all the args are simple enough so that they
definitely don't need fixed regs to compute, compute them directly
into the argument registers, thereby saving some reg-reg moves.
git-svn-id: svn://svn.valgrind.org/vex/trunk@563
2004-11-17 13:06:21 +00:00
Julian Seward
aa4cf9776e
Use improved 80 <-> 64 bit FP conversion routines, as developed in
...
useful/fp_80_64.c
git-svn-id: svn://svn.valgrind.org/vex/trunk@562
2004-11-16 02:07:18 +00:00
Julian Seward
5a08277c4f
Further improve accuracy of 80->64 bit conversions, by rounding
...
correctly in the case where the infinitely precise value is mid-way
between the two closest representable values. None of this has the
slightest affect on any test cases, unfortunately.
git-svn-id: svn://svn.valgrind.org/vex/trunk@561
2004-11-16 02:06:09 +00:00
Julian Seward
d101955e06
Program for testing IEEE gradual underflow.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@560
2004-11-16 00:56:35 +00:00
Julian Seward
983660317b
Do at least a passable job converting denormals and therefore
...
significantly improve accuracy on conversions of numbers in the range
+/- 1e-308 down to about +/- 1e-325.
git-svn-id: svn://svn.valgrind.org/vex/trunk@559
2004-11-16 00:38:19 +00:00
Julian Seward
59afb4cec9
Properly sanity check IRConst values.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@558
2004-11-15 15:46:26 +00:00
Julian Seward
dd054f05b5
Rename the boolean field in IRStmt_Exit from 'cond' to 'guard' to be
...
consistent with other places where boolean guards are stored.
git-svn-id: svn://svn.valgrind.org/vex/trunk@557
2004-11-15 15:30:21 +00:00
Julian Seward
fd77102469
Rename all the _Bit types to I1 so as to be consistent with all the
...
other notation used.
git-svn-id: svn://svn.valgrind.org/vex/trunk@556
2004-11-15 15:21:17 +00:00
Julian Seward
a54ff960d3
Rename INVALID_IRTEMP to IRTemp_INVALID to be consistent with
...
other *_INVALID symbols.
git-svn-id: svn://svn.valgrind.org/vex/trunk@555
2004-11-15 14:22:12 +00:00
Julian Seward
221e2e8c3b
Get rid of some unused primops: And1 Or1 Neg8/16/32/64.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@554
2004-11-15 13:54:26 +00:00
Julian Seward
1247c331f0
Record stuff that needs to be done
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@553
2004-11-15 13:30:26 +00:00