]>
git.ipfire.org Git - thirdparty/valgrind.git/log
Cerion Armour-Brown [Mon, 2 Jan 2006 12:28:17 +0000 (12:28 +0000)]
ppc64: handle 32HLto64, 64HLtoV128
git-svn-id: svn://svn.valgrind.org/vex/trunk@1524
Julian Seward [Mon, 2 Jan 2006 00:35:24 +0000 (00:35 +0000)]
ppc64: handle V128to64, V128HIto64.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1523
Julian Seward [Sun, 1 Jan 2006 17:15:19 +0000 (17:15 +0000)]
x86 counterpart to r1521: For SSE scalar comparison operations where
one operand is in memory, do not read more memory than needed.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1522
Julian Seward [Sun, 1 Jan 2006 13:17:38 +0000 (13:17 +0000)]
For SSE scalar comparison operations where one operand is in memory,
do not read more memory than needed.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1521
Julian Seward [Fri, 30 Dec 2005 15:04:29 +0000 (15:04 +0000)]
Apparently "sync" has an undocumented relative called "lwsync". Sigh.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1520
Julian Seward [Fri, 30 Dec 2005 03:39:14 +0000 (03:39 +0000)]
Handle dcbz in 64-bit mode.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1519
Julian Seward [Mon, 26 Dec 2005 19:33:55 +0000 (19:33 +0000)]
Performance improvements for flag handling.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1513
Julian Seward [Mon, 26 Dec 2005 19:33:24 +0000 (19:33 +0000)]
Comment-only fix
git-svn-id: svn://svn.valgrind.org/vex/trunk@1512
Cerion Armour-Brown [Sat, 24 Dec 2005 13:14:11 +0000 (13:14 +0000)]
Comment only changes - misc refs to ppc32 changed to ppc.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1511
Cerion Armour-Brown [Sat, 24 Dec 2005 12:39:47 +0000 (12:39 +0000)]
Put mode64 in ISelEnv, removing global variable.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1510
Cerion Armour-Brown [Sat, 24 Dec 2005 12:32:10 +0000 (12:32 +0000)]
Fix AltiVec load/store on ppc64 - was only considering lo32 bits of address.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1509
Julian Seward [Fri, 23 Dec 2005 12:46:16 +0000 (12:46 +0000)]
Handle 64HLto128 in 64-bit mode.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1508
Cerion Armour-Brown [Fri, 23 Dec 2005 11:43:01 +0000 (11:43 +0000)]
renamed VEX dirs guest-ppc32/ -> guest-ppc/, host-ppc32/ -> host-ppc/
and adjusted all references to them
git-svn-id: svn://svn.valgrind.org/vex/trunk@1507
Julian Seward [Fri, 23 Dec 2005 01:48:23 +0000 (01:48 +0000)]
Update comment.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1506
Cerion Armour-Brown [Fri, 23 Dec 2005 01:06:35 +0000 (01:06 +0000)]
Deal with backend case of 1Sto64
git-svn-id: svn://svn.valgrind.org/vex/trunk@1505
Cerion Armour-Brown [Fri, 23 Dec 2005 00:55:09 +0000 (00:55 +0000)]
Changed naming convention from 'PPC32' to 'PPC' for all VEX code common to both PPC32 and PPC64.
And tidied up a fair bit while i was at it.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1504
Cerion Armour-Brown [Thu, 22 Dec 2005 14:32:35 +0000 (14:32 +0000)]
Implemented almost all of the remaining 64bit-mode insns.
Currently:
Not yet implemented: td(i)
Implemented, not tested: ldarx, stdcx.
All common-mode int & fp insns in 64bit-mode tested.
Altivec insns in 64bit-mode still to be tested.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1503
Julian Seward [Thu, 22 Dec 2005 03:01:17 +0000 (03:01 +0000)]
small fixes for ppc64 layout stuff
git-svn-id: svn://svn.valgrind.org/vex/trunk@1502
Julian Seward [Sun, 18 Dec 2005 03:07:11 +0000 (03:07 +0000)]
Strict-aliasing fix needed to make gcc-4.1.0 happy.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1501
Cerion Armour-Brown [Sat, 17 Dec 2005 11:28:53 +0000 (11:28 +0000)]
Fix typos.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1500
Cerion Armour-Brown [Fri, 16 Dec 2005 13:49:00 +0000 (13:49 +0000)]
Fix switchback.c to reflect changes to call of LibVEX_Translate()
Fix test_ppc_jm1.c to reflect direct linking
- main -> __main etc
- vex_printf -> vexxx_printf etc
git-svn-id: svn://svn.valgrind.org/vex/trunk@1499
Cerion Armour-Brown [Fri, 16 Dec 2005 13:40:18 +0000 (13:40 +0000)]
Fixed up front and backend for 32bit mul,div,cmp,shift in mode64
Backend:
- separated shifts from other alu ops
- gave {shift, mul, div, cmp} ops a bool to indicate 32|64bit insn
- fixed and implemented more mode64 cases
Also improved some IR by moving imm's to right arg of binop - backend assumes this.
All integer ppc32 insns now pass switchback tests in 64bit mode.
(ppc64-only insns not yet fully tested)
git-svn-id: svn://svn.valgrind.org/vex/trunk@1498
Julian Seward [Fri, 16 Dec 2005 01:06:42 +0000 (01:06 +0000)]
ppc32/64 backend: take r29 out of circulation so the Valgrind
dispatcher can use it.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1497
Julian Seward [Thu, 15 Dec 2005 21:33:50 +0000 (21:33 +0000)]
Make suitable changes for ppc32/ppc64 following recent x86/amd64
dispatch changes. Note, this doesn't change the generated code at
all.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1496
Julian Seward [Thu, 15 Dec 2005 15:45:20 +0000 (15:45 +0000)]
Modify amd64 backend to use jump-jump scheme rather than call-return
scheme.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1495
Julian Seward [Thu, 15 Dec 2005 14:02:34 +0000 (14:02 +0000)]
- x86 back end: change code generation convention, so that instead of
dispatchers CALLing generated code which later RETs, dispatchers
jump to generated code and it jumps back to the dispatcher. This
removes two memory references per translation run and by itself
gives a measureable performance improvement on P4. As a result,
there is new plumbing so that the caller of LibVEX_Translate can
supply the address of the dispatcher to jump back to.
This probably breaks all other targets. Do not update.
- Administrative cleanup: LibVEX_Translate has an excessive
number of arguments. Remove them all and instead add a struct
by which the arguments are supplied. Add further comments
about the meaning of some fields.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1494
Julian Seward [Thu, 15 Dec 2005 13:58:07 +0000 (13:58 +0000)]
Stop gcc complaining.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1493
Cerion Armour-Brown [Wed, 14 Dec 2005 22:00:53 +0000 (22:00 +0000)]
Enable fsqrt
Document store fp single-precision problem
git-svn-id: svn://svn.valgrind.org/vex/trunk@1492
Cerion Armour-Brown [Wed, 14 Dec 2005 10:22:25 +0000 (10:22 +0000)]
More svn:ignores for VEX.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1491
Cerion Armour-Brown [Tue, 13 Dec 2005 21:30:48 +0000 (21:30 +0000)]
Switchbacker updates
- no longer using home-grown linker - simply compiling and linking switchback.c with test_xxx.c
- updated to handle ppc64 (along with it's weirdo function descriptors...)
- have to be careful not to use exported functions from libvex_arch_linux.a, hence vex_printf -> vexxx_printf in test_xxx.c
git-svn-id: svn://svn.valgrind.org/vex/trunk@1490
Cerion Armour-Brown [Tue, 13 Dec 2005 20:23:36 +0000 (20:23 +0000)]
Fix vex_printf padding.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1489
Cerion Armour-Brown [Tue, 13 Dec 2005 20:21:11 +0000 (20:21 +0000)]
Implemented backend for ppc64, sharing ppc32 backend.
- all immediates now use ULongs
- some change in register usage conventions
Implemented most insns for mode64, plus most ppc64-only instructions
- new Iop_DivU/S64
Fixed couple of bugs in backend:
- iselIntExpr_RI must sign-extend immediates
- hdefs.c::Iop_Mul16/32: set syned = False
Currently runs several test programs succesfully via the switchbacker (bzip, emfloat), but still dies with real progs.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1488
Cerion Armour-Brown [Tue, 13 Dec 2005 12:02:26 +0000 (12:02 +0000)]
Added 'Bool mode64' to the various backend functions, to distinguish 32/64bit arch's.
This will be needed for the ppc32/64 backend.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1487
Cerion Armour-Brown [Tue, 6 Dec 2005 19:11:02 +0000 (19:11 +0000)]
fix padding for VexGuestPPC64State
git-svn-id: svn://svn.valgrind.org/vex/trunk@1484
Cerion Armour-Brown [Fri, 2 Dec 2005 16:03:46 +0000 (16:03 +0000)]
Re-enabled ppc32 frontend floating point load/store single precision insns:
- lfsu, stfsu, stfsux
Note: fp store single precision insns are being rounded twice, giving a loss of precision... this needs some thinking to solve properly...
git-svn-id: svn://svn.valgrind.org/vex/trunk@1482
Cerion Armour-Brown [Wed, 30 Nov 2005 19:55:22 +0000 (19:55 +0000)]
Fixed a couple of mode32 bugs introduced by mode64
Adapted more code to handle mode64
New irops: Iop_CmpORD64S/U
git-svn-id: svn://svn.valgrind.org/vex/trunk@1479
Julian Seward [Tue, 29 Nov 2005 18:19:11 +0000 (18:19 +0000)]
Fix %lr handling for bcctr and bclr.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1478
Julian Seward [Tue, 29 Nov 2005 14:47:04 +0000 (14:47 +0000)]
Set mode64 from the given guest subarch.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1477
Cerion Armour-Brown [Tue, 29 Nov 2005 13:48:52 +0000 (13:48 +0000)]
Missed this in commit of vex: r1475 (ppc64 first pass)
git-svn-id: svn://svn.valgrind.org/vex/trunk@1476
Cerion Armour-Brown [Tue, 29 Nov 2005 13:27:20 +0000 (13:27 +0000)]
First pass at VEX support of ppc64.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1475
Julian Seward [Mon, 28 Nov 2005 13:39:37 +0000 (13:39 +0000)]
Modify the tree builder to use a fixed-size binding environment rather
than one that is potentially proportional to the length of the input
BB. This changes its complexity from quadratic to linear (in the
length of the BB) and gives a noticable increase in the overall speed
of vex. The tradeoff is that it can no longer guarantee to build
maximal trees, but in practice in only rarely fails to do so (about 1
in 100 bbs) and so the resulting degradation in code quality is
completely insignificant (unmeasurable).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1474
Julian Seward [Mon, 28 Nov 2005 13:34:19 +0000 (13:34 +0000)]
3rd go at making args match format string.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1473
Julian Seward [Fri, 25 Nov 2005 04:28:46 +0000 (04:28 +0000)]
64-bit format string fix
git-svn-id: svn://svn.valgrind.org/vex/trunk@1471
Julian Seward [Fri, 25 Nov 2005 02:47:00 +0000 (02:47 +0000)]
Be paranoid about the alignment of the storage arrays.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1470
Julian Seward [Wed, 23 Nov 2005 04:25:07 +0000 (04:25 +0000)]
Use a very fast in-line allocator. This improves its performance by
up to 10% on a P4.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1469
Julian Seward [Wed, 23 Nov 2005 03:54:48 +0000 (03:54 +0000)]
Compile vex at -O2. This improves its performance by about 15%
on a PIII running SuSE 10 (gcc 4.0.2).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1468
Julian Seward [Wed, 23 Nov 2005 03:53:45 +0000 (03:53 +0000)]
Do float-to-bit-image conversion in a way which does not break ANSI C
aliasing rules.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1467
Julian Seward [Fri, 18 Nov 2005 22:18:23 +0000 (22:18 +0000)]
gcc-2.96 build fixes
git-svn-id: svn://svn.valgrind.org/vex/trunk@1466
Cerion Armour-Brown [Fri, 18 Nov 2005 20:57:41 +0000 (20:57 +0000)]
Cleaned up access to 'special purpose' registers.
Added todo/limitations comments for AltiVec.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1465
Cerion Armour-Brown [Fri, 18 Nov 2005 20:45:51 +0000 (20:45 +0000)]
Track valgrind r5196, wrt Non-Java mode
git-svn-id: svn://svn.valgrind.org/vex/trunk@1464
Cerion Armour-Brown [Fri, 18 Nov 2005 18:25:12 +0000 (18:25 +0000)]
Cleaned up toIR.c somewhat
- cleaner extraction of instruction fields, consistent variable names, spaces for tabs, comments++
git-svn-id: svn://svn.valgrind.org/vex/trunk@1463
Cerion Armour-Brown [Wed, 16 Nov 2005 18:02:58 +0000 (18:02 +0000)]
Implemented most of the remaining altivec fp ops:
rounds (vrfi*), converts (vctu/sxs, vcfu/sx)
git-svn-id: svn://svn.valgrind.org/vex/trunk@1462
Cerion Armour-Brown [Wed, 16 Nov 2005 17:21:10 +0000 (17:21 +0000)]
Yet more irops, for fp vector conversion/rounding.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1461
Julian Seward [Tue, 15 Nov 2005 11:16:30 +0000 (11:16 +0000)]
Implement SSE2 'clflush'.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1460
Julian Seward [Tue, 15 Nov 2005 10:21:19 +0000 (10:21 +0000)]
delete unused multiply primops
git-svn-id: svn://svn.valgrind.org/vex/trunk@1459
Cerion Armour-Brown [Mon, 14 Nov 2005 03:32:23 +0000 (03:32 +0000)]
gcc4 picked up a typo.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1458
Cerion Armour-Brown [Mon, 14 Nov 2005 02:37:44 +0000 (02:37 +0000)]
More av insns: vmaddfp, vnmsubfp
Rough 'n ready IR used - results will be rounded along the way, not just at the end of the calculations, giving some error.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1457
Cerion Armour-Brown [Mon, 14 Nov 2005 00:44:47 +0000 (00:44 +0000)]
Frontend
--------
Added a bunch of altivec float insns:
vaddfp, vsubfp, vmaxfp, vminfp,
vrefp, vrsqrtefp
vcmpgefp, vcmpgtfp, vcmpbfp
Made use of fact that ppc backend for compare insns return
zero'd lanes if either of the corresponding args is a nan.
- perhaps better to have an irop Iop_isNan32Fx4, but seems unecessary work until we get into running non-native code through vex.
- better still, tighten down the spec for compare irops wrt nan
Backend
-------
Separated av float ops to own insn group - they're only ever type 32x4
Added av float unary insns
Added av float cmp insns - for irops that don't map directly to native insns, native behaviour wrt nan's is followed, requiring lane value==nan comparisons for each argument vector.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1456
Cerion Armour-Brown [Mon, 14 Nov 2005 00:35:59 +0000 (00:35 +0000)]
New irops: Iop_CmpGT32Fx4, Iop_CmpGE32Fx4
git-svn-id: svn://svn.valgrind.org/vex/trunk@1455
Julian Seward [Sun, 13 Nov 2005 20:30:24 +0000 (20:30 +0000)]
More profiling-induced speedups.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1454
Julian Seward [Sun, 13 Nov 2005 19:51:04 +0000 (19:51 +0000)]
Add some flag-specialisation cases that profiling showed the need for.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1453
Julian Seward [Sun, 13 Nov 2005 00:53:05 +0000 (00:53 +0000)]
Revise the PPC32 subarchitecture kinds, so as to facilitated
supporting CPUs that have neither Altivec nor FPU.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1452
Julian Seward [Sat, 12 Nov 2005 12:56:31 +0000 (12:56 +0000)]
Always mark blrl as a return.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1451
Julian Seward [Fri, 11 Nov 2005 18:37:10 +0000 (18:37 +0000)]
Add "make -j N" kludge to Vex too.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1450
Julian Seward [Thu, 10 Nov 2005 18:10:58 +0000 (18:10 +0000)]
Handle instrumentation artefacts arising from memchecking Altivec
code. Also, rename a few primops and add another folding rule.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1449
Cerion Armour-Brown [Wed, 9 Nov 2005 21:34:20 +0000 (21:34 +0000)]
Fix usage of Iop_MullEven* to give IR correct meaning of which lanes being multiplied, i.e. lowest significant lane = zero
(rather than the ibm-speke 'most significant = zero')
git-svn-id: svn://svn.valgrind.org/vex/trunk@1448
Cerion Armour-Brown [Tue, 8 Nov 2005 16:23:07 +0000 (16:23 +0000)]
Frontend:
added remaining integer altivec insns (phew!)
- vsum4ubs, vsum4sbs, vsum4shs, vsum2sws, vsumsws
- vmsummbm, vmsumuhs, vmsumshs
various helpers to construct IR
- expand8x16*: sign/zero-extend V128_8x16 lanes => 2x V128_16x8
- breakV128to4x64*: break V128 to 4xI32's, sign/zero-extend to I64's
- mkQNarrow64to32*: un/signed saturating narrow 64 to 32
- mkV128from4x64*: narrow 4xI64's to 4xI32's, combine to V128_34x4
Backend:
Iop_Add64
- added PPC32Instr_AddSubC32: 32-bit add/sub read/write carry
64-bit Iex_Const
Iop_32Sto64
git-svn-id: svn://svn.valgrind.org/vex/trunk@1447
Julian Seward [Mon, 7 Nov 2005 15:37:24 +0000 (15:37 +0000)]
Don't delete existing target-specific .a's when a target-switch happens.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1446
Julian Seward [Mon, 7 Nov 2005 14:59:13 +0000 (14:59 +0000)]
Changes for biarch (x86 and amd64) support.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1445
Julian Seward [Mon, 7 Nov 2005 14:23:52 +0000 (14:23 +0000)]
Handle some SSE3 instructions. A curious side-effect of this is that
it makes it possible to run SSE3 code on an SSE2-only machine.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1444
Julian Seward [Sat, 5 Nov 2005 15:46:22 +0000 (15:46 +0000)]
Simulate complete LDT and GDT, rather than just a prefix thereof.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1443
Julian Seward [Sat, 5 Nov 2005 13:04:34 +0000 (13:04 +0000)]
format string wibble
git-svn-id: svn://svn.valgrind.org/vex/trunk@1442
Julian Seward [Sat, 5 Nov 2005 02:58:55 +0000 (02:58 +0000)]
Stop gcc4 complaining.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1441
Julian Seward [Sat, 5 Nov 2005 02:55:06 +0000 (02:55 +0000)]
Implement FINIT.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1440
Julian Seward [Sat, 5 Nov 2005 02:33:25 +0000 (02:33 +0000)]
Implement vector FP unordered compares on amd64.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1439
Julian Seward [Sat, 5 Nov 2005 01:54:07 +0000 (01:54 +0000)]
The earth's core is a vast mass of molten sse and sse2 instructions.
Occasionally some make their way to the surface and spew out, causing
havoc for miles around.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1438
Julian Seward [Sat, 5 Nov 2005 01:12:18 +0000 (01:12 +0000)]
Reenable FUCOMP %st(0),%st(?).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1437
Julian Seward [Fri, 4 Nov 2005 20:49:36 +0000 (20:49 +0000)]
Implement SHRDv imm8.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1436
Julian Seward [Fri, 4 Nov 2005 20:05:57 +0000 (20:05 +0000)]
Implement shld/shrd on amd64. Total timewasting nightmare, not helped
by AMD's out-of-range shift behaviour being both undocumented and
bizarre.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1435
Cerion Armour-Brown [Fri, 4 Nov 2005 19:44:48 +0000 (19:44 +0000)]
New irop Iop_MullEven*
- a widening un/signed multiply of even lanes
Recast misused irops Iop_MulLo/Hi* as Iop_MullEven*
git-svn-id: svn://svn.valgrind.org/vex/trunk@1434
Julian Seward [Fri, 4 Nov 2005 14:34:52 +0000 (14:34 +0000)]
Handle jecxz in addition to jrcxz.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1433
Julian Seward [Fri, 4 Nov 2005 14:18:31 +0000 (14:18 +0000)]
Handle address-size overrides in the common case (explicit memory references).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1432
Julian Seward [Thu, 3 Nov 2005 14:00:57 +0000 (14:00 +0000)]
Handle any number of 0x66 (operand-size-override) prefixes.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1431
Julian Seward [Thu, 3 Nov 2005 13:42:28 +0000 (13:42 +0000)]
wibble
git-svn-id: svn://svn.valgrind.org/vex/trunk@1430
Julian Seward [Thu, 3 Nov 2005 13:27:24 +0000 (13:27 +0000)]
API change: make the handling of syscall-denoting instructions a bit
more general, so as to facilitate handling different combinations of
syscall/int more easily.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1429
Julian Seward [Thu, 3 Nov 2005 13:19:33 +0000 (13:19 +0000)]
Generate offsets for all amd64 integer registers.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1428
Julian Seward [Tue, 1 Nov 2005 18:59:38 +0000 (18:59 +0000)]
Implement 66 0F 11 = MOVUPD (untested)
git-svn-id: svn://svn.valgrind.org/vex/trunk@1427
Julian Seward [Sat, 29 Oct 2005 22:30:47 +0000 (22:30 +0000)]
Tidy up a couple of format strings.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1426
Julian Seward [Sat, 29 Oct 2005 19:19:51 +0000 (19:19 +0000)]
x86 front end: implement in/out insns.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1425
Julian Seward [Sat, 22 Oct 2005 12:49:49 +0000 (12:49 +0000)]
Fill in a few missing Altivec cases:
- rename Iop_Perm to Iop_Perm8x16
- backend: handle Iop_CmpNEZ8x16
- frontend: for vperm, mask off all irrelevant parts of the steering values
git-svn-id: svn://svn.valgrind.org/vex/trunk@1424
Julian Seward [Sat, 22 Oct 2005 12:46:06 +0000 (12:46 +0000)]
Remove inefficient and not-completely-general logic in addHRegUse and
replace with something general and simpler.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1423
Julian Seward [Sat, 22 Oct 2005 02:01:16 +0000 (02:01 +0000)]
Minor altivec changes:
- vsplt{b,h,w}: guarantee to always produce in-range shifts
- lvs{l,r}: mask second arg to helper so assertion in helper doesn't fire.
Also pass in offset to dest rather than reg #.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1422
Julian Seward [Thu, 20 Oct 2005 11:56:00 +0000 (11:56 +0000)]
Unbreak build.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1421
Julian Seward [Tue, 18 Oct 2005 12:01:48 +0000 (12:01 +0000)]
API change: pass both the VexGuestExtents and the original
pre-redirection guest address to instrumentation functions.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1420
Julian Seward [Wed, 12 Oct 2005 11:34:33 +0000 (11:34 +0000)]
Build fixes for gcc-2.96 (which does not allow declarations after the
first statement in a block).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1419
Julian Seward [Sat, 8 Oct 2005 19:58:48 +0000 (19:58 +0000)]
Handle the out-of-range shift cases for slw/srw in a different way
which creates less IR and fewer insns at the back end. Worth about 2%
running bzip2 -d with --tool=none.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1418
Julian Seward [Sat, 8 Oct 2005 11:28:16 +0000 (11:28 +0000)]
Enable chasing of unconditional branches and calls.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1417
Julian Seward [Fri, 7 Oct 2005 09:45:16 +0000 (09:45 +0000)]
Special-case rlwnms which are really slwi or srwi. This gives about
1% translated code size improvement for run-of-the-mill integer code.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1416
Julian Seward [Wed, 5 Oct 2005 17:58:32 +0000 (17:58 +0000)]
Handle FUCOM %st(0),%st(?).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1415
Julian Seward [Wed, 5 Oct 2005 17:19:11 +0000 (17:19 +0000)]
Handle BT/BTS/BTR/BTC at size 4 as well as 8.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1414