]>
git.ipfire.org Git - thirdparty/valgrind.git/log
Julian Seward [Thu, 23 Feb 2006 22:30:35 +0000 (22:30 +0000)]
merge r1544 (The ppc32 port ran itself out of spill slots on some
heavy duty FP code.)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1576
Julian Seward [Tue, 21 Feb 2006 17:43:20 +0000 (17:43 +0000)]
Re-enable 'fsqrt'. This isn't really correct in the sense that the
insn is allowed even if the CPU doesn't support it. No matter; it
is done properly in the svn trunk (to become 3.2.0).
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1575
Julian Seward [Tue, 27 Dec 2005 14:35:15 +0000 (14:35 +0000)]
Merge vx1501 (strict-aliasing fix)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1516
Julian Seward [Tue, 27 Dec 2005 14:30:46 +0000 (14:30 +0000)]
Merge vx1492 (fix for: ppc32: fsqrt). Needs verification.
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1515
Julian Seward [Tue, 27 Dec 2005 14:22:25 +0000 (14:22 +0000)]
Merge vx1482 (fix for: ppc32: lfsu f5, -4(r11) and various others)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1514
Julian Seward [Sat, 26 Nov 2005 16:16:04 +0000 (16:16 +0000)]
Tag the tree for the 3.1.0 release. Both of these are copies of trunk
rev 1471.
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1472
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
Julian Seward [Wed, 5 Oct 2005 16:58:23 +0000 (16:58 +0000)]
Implement JRCXZ.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1413
Julian Seward [Wed, 5 Oct 2005 10:39:58 +0000 (10:39 +0000)]
Handle the redundant-encoding (Grp5) versions of {inc,dec}{b,w}.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1412
Julian Seward [Tue, 4 Oct 2005 20:00:49 +0000 (20:00 +0000)]
Handle SSE2 pmaddwd.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1411
Julian Seward [Tue, 4 Oct 2005 11:43:37 +0000 (11:43 +0000)]
Implement SSE2 psadbw.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1410
Julian Seward [Mon, 3 Oct 2005 11:39:02 +0000 (11:39 +0000)]
Implement LAHF.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1409
Julian Seward [Mon, 3 Oct 2005 02:44:01 +0000 (02:44 +0000)]
Implement the 0F 7F encoding for movq mmreg, mmreg.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1408
Julian Seward [Mon, 3 Oct 2005 02:16:02 +0000 (02:16 +0000)]
Enable Xin_MFence on VexSubArchX86_sse0.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1407
Julian Seward [Mon, 3 Oct 2005 02:07:08 +0000 (02:07 +0000)]
Fix various adc/sbb instruction variants.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1406
Julian Seward [Mon, 3 Oct 2005 01:02:40 +0000 (01:02 +0000)]
x86 front end: implement FXTRACT. I knew there was a reason I'd been
avoiding this ...
git-svn-id: svn://svn.valgrind.org/vex/trunk@1405
Cerion Armour-Brown [Fri, 16 Sep 2005 16:02:11 +0000 (16:02 +0000)]
Some AltiVec vector-multiply arith insns
(those that don't need >32bit signed adds)
- vmhaddshs, vmhraddshs, vmladduhm, vmsumubm, vmsumuhm, vmsumshm
git-svn-id: svn://svn.valgrind.org/vex/trunk@1404
Cerion Armour-Brown [Fri, 16 Sep 2005 08:55:50 +0000 (08:55 +0000)]
spacing and var name chages only
- 'saturated' op names get a preceding Q instead of a trailing S
git-svn-id: svn://svn.valgrind.org/vex/trunk@1403
Cerion Armour-Brown [Fri, 16 Sep 2005 07:54:40 +0000 (07:54 +0000)]
More AltiVec: shifts and rotates
- vrl*, vsl*, vsr*
git-svn-id: svn://svn.valgrind.org/vex/trunk@1402
Cerion Armour-Brown [Fri, 16 Sep 2005 07:53:31 +0000 (07:53 +0000)]
Rename primop Iop_Rot* Iop_Rotl*
git-svn-id: svn://svn.valgrind.org/vex/trunk@1401
Cerion Armour-Brown [Fri, 16 Sep 2005 07:13:44 +0000 (07:13 +0000)]
Added packing/unpacking AltiVec insns
- vpk*, vupk*
git-svn-id: svn://svn.valgrind.org/vex/trunk@1400
Cerion Armour-Brown [Thu, 15 Sep 2005 21:58:50 +0000 (21:58 +0000)]
Added AltiVec permutation insns:
- vperm, vsldoi, vmrg*, vsplt*
git-svn-id: svn://svn.valgrind.org/vex/trunk@1399
Cerion Armour-Brown [Thu, 15 Sep 2005 16:28:36 +0000 (16:28 +0000)]
Couple more primops: Iop_ShlN8x16, Iop_ShrN8x16, Iop_SarN8x16
git-svn-id: svn://svn.valgrind.org/vex/trunk@1398
Julian Seward [Thu, 15 Sep 2005 16:00:58 +0000 (16:00 +0000)]
Makefile fixes:
- Fix default compiler better
- Add dummy install target to help V's build system
- Don't hardwire 'ar' (fix for #112199).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1397
Cerion Armour-Brown [Thu, 15 Sep 2005 14:22:58 +0000 (14:22 +0000)]
Added AltiVec integer compare insns.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1396
Cerion Armour-Brown [Thu, 15 Sep 2005 12:42:16 +0000 (12:42 +0000)]
Implemented simple AltiVec arithmetic insns:
- add, sub, max, min, avg, hi/lo mul
and all varieties thereof: (un)signed, (un)saturated, 8|16|32 lane size...
fixed backend hi/lo_mul: only valid for 16|32 bit lanes, not 8.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1395
Cerion Armour-Brown [Wed, 14 Sep 2005 22:59:26 +0000 (22:59 +0000)]
Added AltiVec sub-vector load/store insns:
lvebx, lvehx, lvewx, stvebx, stvehx, stvewx
git-svn-id: svn://svn.valgrind.org/vex/trunk@1394
Cerion Armour-Brown [Wed, 14 Sep 2005 21:15:40 +0000 (21:15 +0000)]
implemented vaddcuw
backend:
Iop_ShrN32x4, Iop_Add32x4, Iop_CmpGT32Ux4
fixed emit_Instr::Pin_AvSplat for negative nums
fixed mk_AvDuplicateRI for imm's 16:31, -32:-17 inclusive
git-svn-id: svn://svn.valgrind.org/vex/trunk@1393
Cerion Armour-Brown [Wed, 14 Sep 2005 20:35:47 +0000 (20:35 +0000)]
more altivec insns: vsr, vspltw
- only working with with --tool=none
back-end:
hdefs:
new type for PPC32Instr_AvSplat:
PPC32VI5s => {vector-reg | signed-5bit-imm}
fixed ShlV128, ShrV128 to shift the full 128bits
isel:
implemented Iop_Dup32x4, Iop_ShrV128
new function mk_AvDuplicateRI()
- takes in ri_src (imm|reg, latter of type 8|16|32)
returns vector reg of duplicated lanes of ri_src
avoids store/load for immediates up to simm6.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1392
Cerion Armour-Brown [Tue, 13 Sep 2005 18:41:09 +0000 (18:41 +0000)]
implemented guest-ppc32 lvsl, lvsr using dirty helper function
git-svn-id: svn://svn.valgrind.org/vex/trunk@1391
Cerion Armour-Brown [Tue, 13 Sep 2005 17:25:41 +0000 (17:25 +0000)]
yet another new IR primop: Iop_QNarrow32Ux4
git-svn-id: svn://svn.valgrind.org/vex/trunk@1390
Cerion Armour-Brown [Tue, 13 Sep 2005 16:34:28 +0000 (16:34 +0000)]
Added a number of new IR primops to support integer AltiVec insns
git-svn-id: svn://svn.valgrind.org/vex/trunk@1389
Cerion Armour-Brown [Tue, 13 Sep 2005 13:34:09 +0000 (13:34 +0000)]
a couple more simple altivec insns
- vandc, vnor, vsel
git-svn-id: svn://svn.valgrind.org/vex/trunk@1388
Cerion Armour-Brown [Mon, 12 Sep 2005 22:51:53 +0000 (22:51 +0000)]
ppc guest_state vector regs must be 16byte aligned for loads/stores
git-svn-id: svn://svn.valgrind.org/vex/trunk@1387
Cerion Armour-Brown [Mon, 12 Sep 2005 20:49:09 +0000 (20:49 +0000)]
front end:
- implemented insns: mfvscr, mtvscr, vand, vor, vxor
- fixed default vscr: enable non-java mode
back end:
- implemented enough to satisfy the front end: V128to32, 32UtoV128, not, and, or, xor
- fixed conversions to/from v128 to use quad-word-aligned stack addressing for their vector load/stores
git-svn-id: svn://svn.valgrind.org/vex/trunk@1386
Cerion Armour-Brown [Sat, 10 Sep 2005 12:02:24 +0000 (12:02 +0000)]
reinstated altivec insn disassembly framework
- no more insns implemented, just easier to see what insn is needed when we hit an unhandled insn.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1385
Julian Seward [Fri, 9 Sep 2005 22:31:49 +0000 (22:31 +0000)]
Typechecker cleanups (non-functional changes)
git-svn-id: svn://svn.valgrind.org/vex/trunk@1384
Julian Seward [Fri, 9 Sep 2005 19:45:36 +0000 (19:45 +0000)]
iselInt64Expr: handle 64-bit Mux0X.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1383
Julian Seward [Fri, 9 Sep 2005 19:45:02 +0000 (19:45 +0000)]
Fix mcrxr.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1382
Cerion Armour-Brown [Fri, 9 Sep 2005 16:38:19 +0000 (16:38 +0000)]
reinstate lhau, lhaux, sthux, mcrxr
git-svn-id: svn://svn.valgrind.org/vex/trunk@1381
Cerion Armour-Brown [Fri, 9 Sep 2005 16:31:24 +0000 (16:31 +0000)]
implemented Iop_64HLtoV128 in iselVecExpr_wrk
git-svn-id: svn://svn.valgrind.org/vex/trunk@1380
Julian Seward [Fri, 9 Sep 2005 10:36:55 +0000 (10:36 +0000)]
Reinstate stfdux, fctiw.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1379
Julian Seward [Fri, 9 Sep 2005 10:25:39 +0000 (10:25 +0000)]
Cleanups:
- remove various unused vars
- try and use ea_standard/ea_rA_or_zero where possible to do
effective-address computations
git-svn-id: svn://svn.valgrind.org/vex/trunk@1378