]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
19 years agoMerge r1587 (Implement fcmovnu.)
Julian Seward [Mon, 6 Mar 2006 19:23:30 +0000 (19:23 +0000)] 
Merge r1587 (Implement fcmovnu.)

git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1589

19 years agoMerge r1585 (3DNow! prefetch insn (prefetch, prefetchw))
Julian Seward [Mon, 6 Mar 2006 14:32:00 +0000 (14:32 +0000)] 
Merge r1585 (3DNow! prefetch insn (prefetch, prefetchw))

git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1586

19 years agoMerge r1583 (fix for 8-bit xadd G,E)
Julian Seward [Mon, 6 Mar 2006 13:42:01 +0000 (13:42 +0000)] 
Merge r1583 (fix for 8-bit xadd G,E)

git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1584

19 years agoMerge r1569 (Redo x86g_calculate_FXTRACT to only use integer arithmetic.)
Julian Seward [Mon, 6 Mar 2006 13:16:18 +0000 (13:16 +0000)] 
Merge r1569 (Redo x86g_calculate_FXTRACT to only use integer arithmetic.)

git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1582

19 years agogcc-2.96 build fix
Julian Seward [Mon, 6 Mar 2006 12:41:39 +0000 (12:41 +0000)] 
gcc-2.96 build fix

git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1581

19 years agomerge r1579 (Implement mtocrf/mfocrf.)
Julian Seward [Sun, 5 Mar 2006 19:20:08 +0000 (19:20 +0000)] 
merge r1579 (Implement mtocrf/mfocrf.)

git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1580

19 years agoPartially merge r1519 (only allocate from callee-save FP and VMX regs).
Julian Seward [Fri, 24 Feb 2006 00:14:29 +0000 (00:14 +0000)] 
Partially merge r1519 (only allocate from callee-save FP and VMX regs).

git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1578

19 years agoFold in a fix for ppc32 rounding mode setting, from the trunk.
Julian Seward [Thu, 23 Feb 2006 23:47:56 +0000 (23:47 +0000)] 
Fold in a fix for ppc32 rounding mode setting, from the trunk.

git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1577

19 years agomerge r1544 (The ppc32 port ran itself out of spill slots on some
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

19 years agoRe-enable 'fsqrt'. This isn't really correct in the sense that the
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

19 years agoMerge vx1501 (strict-aliasing fix)
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

19 years agoMerge vx1492 (fix for: ppc32: fsqrt). Needs verification.
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

19 years agoMerge vx1482 (fix for: ppc32: lfsu f5, -4(r11) and various others)
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

19 years agoTag the tree for the 3.1.0 release. Both of these are copies of trunk
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

19 years ago64-bit format string fix
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

19 years agoBe paranoid about the alignment of the storage arrays.
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

19 years agoUse a very fast in-line allocator. This improves its performance by
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

19 years agoCompile vex at -O2. This improves its performance by about 15%
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

19 years agoDo float-to-bit-image conversion in a way which does not break ANSI C
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

19 years agogcc-2.96 build fixes
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

19 years agoCleaned up access to 'special purpose' registers.
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

19 years agoTrack valgrind r5196, wrt Non-Java mode
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

19 years agoCleaned up toIR.c somewhat
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

19 years agoImplemented most of the remaining altivec fp ops:
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

19 years agoYet more irops, for fp vector conversion/rounding.
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

19 years agoImplement SSE2 'clflush'.
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

19 years agodelete unused multiply primops
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

19 years agogcc4 picked up a typo.
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

19 years agoMore av insns: vmaddfp, vnmsubfp
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

19 years agoFrontend
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

19 years agoNew irops: Iop_CmpGT32Fx4, Iop_CmpGE32Fx4
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

19 years agoMore profiling-induced speedups.
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

19 years agoAdd some flag-specialisation cases that profiling showed the need for.
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

19 years agoRevise the PPC32 subarchitecture kinds, so as to facilitated
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

19 years agoAlways mark blrl as a return.
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

19 years agoAdd "make -j N" kludge to Vex too.
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

19 years agoHandle instrumentation artefacts arising from memchecking Altivec
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

19 years agoFix usage of Iop_MullEven* to give IR correct meaning of which lanes being multiplied...
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

19 years agoFrontend:
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

19 years agoDon't delete existing target-specific .a's when a target-switch happens.
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

19 years agoChanges for biarch (x86 and amd64) support.
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

19 years agoHandle some SSE3 instructions. A curious side-effect of this is that
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

19 years agoSimulate complete LDT and GDT, rather than just a prefix thereof.
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

19 years agoformat string wibble
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

19 years agoStop gcc4 complaining.
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

19 years agoImplement FINIT.
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

19 years agoImplement vector FP unordered compares on amd64.
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

19 years agoThe earth's core is a vast mass of molten sse and sse2 instructions.
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

19 years agoReenable FUCOMP %st(0),%st(?).
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

19 years agoImplement SHRDv imm8.
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

19 years agoImplement shld/shrd on amd64. Total timewasting nightmare, not helped
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

19 years agoNew irop Iop_MullEven*
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

19 years agoHandle jecxz in addition to jrcxz.
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

19 years agoHandle address-size overrides in the common case (explicit memory references).
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

19 years agoHandle any number of 0x66 (operand-size-override) prefixes.
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

19 years agowibble
Julian Seward [Thu, 3 Nov 2005 13:42:28 +0000 (13:42 +0000)] 
wibble

git-svn-id: svn://svn.valgrind.org/vex/trunk@1430

19 years agoAPI change: make the handling of syscall-denoting instructions a bit
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

19 years agoGenerate offsets for all amd64 integer registers.
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

19 years agoImplement 66 0F 11 = MOVUPD (untested)
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

19 years agoTidy up a couple of format strings.
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

19 years agox86 front end: implement in/out insns.
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

19 years agoFill in a few missing Altivec cases:
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

19 years agoRemove inefficient and not-completely-general logic in addHRegUse and
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

19 years agoMinor altivec changes:
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

19 years agoUnbreak build.
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

19 years agoAPI change: pass both the VexGuestExtents and the original
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

19 years agoBuild fixes for gcc-2.96 (which does not allow declarations after the
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

19 years agoHandle the out-of-range shift cases for slw/srw in a different way
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

19 years agoEnable chasing of unconditional branches and calls.
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

19 years agoSpecial-case rlwnms which are really slwi or srwi. This gives about
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

19 years agoHandle FUCOM %st(0),%st(?).
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

19 years agoHandle BT/BTS/BTR/BTC at size 4 as well as 8.
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

19 years agoImplement JRCXZ.
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

19 years agoHandle the redundant-encoding (Grp5) versions of {inc,dec}{b,w}.
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

19 years agoHandle SSE2 pmaddwd.
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

19 years agoImplement SSE2 psadbw.
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

19 years agoImplement LAHF.
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

19 years agoImplement the 0F 7F encoding for movq mmreg, mmreg.
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

19 years agoEnable Xin_MFence on VexSubArchX86_sse0.
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

19 years agoFix various adc/sbb instruction variants.
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

19 years agox86 front end: implement FXTRACT. I knew there was a reason I'd been
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

19 years agoSome AltiVec vector-multiply arith insns
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

19 years agospacing and var name chages only
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

19 years agoMore AltiVec: shifts and rotates
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

19 years agoRename primop Iop_Rot* Iop_Rotl*
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

19 years agoAdded packing/unpacking AltiVec insns
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

19 years agoAdded AltiVec permutation insns:
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

19 years agoCouple more primops: Iop_ShlN8x16, Iop_ShrN8x16, Iop_SarN8x16
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

19 years agoMakefile fixes:
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

19 years agoAdded AltiVec integer compare insns.
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

19 years agoImplemented simple AltiVec arithmetic insns:
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

19 years agoAdded AltiVec sub-vector load/store insns:
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

19 years agoimplemented vaddcuw
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

19 years agomore altivec insns: vsr, vspltw
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

19 years agoimplemented guest-ppc32 lvsl, lvsr using dirty helper function
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

19 years agoyet another new IR primop: Iop_QNarrow32Ux4
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

19 years agoAdded a number of new IR primops to support integer AltiVec insns
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

19 years agoa couple more simple altivec insns
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

19 years agoppc guest_state vector regs must be 16byte aligned for loads/stores
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

19 years agofront end:
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