]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
19 years agoppc: re-enable mtfsb1 instruction.
Cerion Armour-Brown [Wed, 4 Jan 2006 10:53:00 +0000 (10:53 +0000)] 
ppc: re-enable mtfsb1 instruction.

Note: Only the rounding mode field of the FPSCR is supported.
 - Reads from any other bits return zero.
 - Writes to any other bits are ignored.  Writes to 'exception control' bits or the 'non-ieee mode' bit results in an emulation warning.

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

19 years agoFix magic-sequence spotting in 64-bit mode.
Julian Seward [Tue, 3 Jan 2006 18:41:00 +0000 (18:41 +0000)] 
Fix magic-sequence spotting in 64-bit mode.

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

19 years agoAdd missing function.
Julian Seward [Tue, 3 Jan 2006 18:40:18 +0000 (18:40 +0000)] 
Add missing function.

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

19 years agoppc64 altivec:
Cerion Armour-Brown [Mon, 2 Jan 2006 15:15:45 +0000 (15:15 +0000)] 
ppc64 altivec:
 - frontend: fix stvehx, stvewx
 - backend:  fix Iop_32HLto64 (mask off hi32 bits of src regs)

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

19 years agoHandle ppc64's function ptr's for toIR.c's dirtyhelper calls.
Cerion Armour-Brown [Mon, 2 Jan 2006 14:41:50 +0000 (14:41 +0000)] 
Handle ppc64's function ptr's for toIR.c's dirtyhelper calls.

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

19 years agoHandle ppc64's function ptr's in bb_to_IR::do_self_check.
Cerion Armour-Brown [Mon, 2 Jan 2006 14:09:16 +0000 (14:09 +0000)] 
Handle ppc64's function ptr's in bb_to_IR::do_self_check.

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

19 years agoppc64 fixes:
Cerion Armour-Brown [Mon, 2 Jan 2006 13:35:51 +0000 (13:35 +0000)] 
ppc64 fixes:
 - branch: compare full 64bits of CTR reg to zero.
 - stwcx.: store only lo32 bits of r_src to EA in 64bit mode.

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

19 years agoppc64: handle 32HLto64, 64HLtoV128
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

19 years agoppc64: handle V128to64, V128HIto64.
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

19 years agox86 counterpart to r1521: For SSE scalar comparison operations where
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

19 years agoFor SSE scalar comparison operations where one operand is in memory,
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

19 years agoApparently "sync" has an undocumented relative called "lwsync". Sigh.
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

19 years agoHandle dcbz in 64-bit mode.
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

19 years agoPerformance improvements for flag handling.
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

19 years agoComment-only fix
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

19 years agoComment only changes - misc refs to ppc32 changed to ppc.
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

19 years agoPut mode64 in ISelEnv, removing global variable.
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

19 years agoFix AltiVec load/store on ppc64 - was only considering lo32 bits of address.
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

19 years agoHandle 64HLto128 in 64-bit mode.
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

19 years agorenamed VEX dirs guest-ppc32/ -> guest-ppc/, host-ppc32/ -> host-ppc/
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

19 years agoUpdate comment.
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

19 years agoDeal with backend case of 1Sto64
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

19 years agoChanged naming convention from 'PPC32' to 'PPC' for all VEX code common to both PPC32...
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

19 years agoImplemented almost all of the remaining 64bit-mode insns.
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

19 years agosmall fixes for ppc64 layout stuff
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

19 years agoStrict-aliasing fix needed to make gcc-4.1.0 happy.
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

19 years agoFix typos.
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

19 years agoFix switchback.c to reflect changes to call of LibVEX_Translate()
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

19 years agoFixed up front and backend for 32bit mul,div,cmp,shift in mode64
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

19 years agoppc32/64 backend: take r29 out of circulation so the Valgrind
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

19 years agoMake suitable changes for ppc32/ppc64 following recent x86/amd64
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

19 years agoModify amd64 backend to use jump-jump scheme rather than call-return
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

19 years ago- x86 back end: change code generation convention, so that instead of
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

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

19 years agoEnable fsqrt
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

19 years agoMore svn:ignores for VEX.
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

19 years agoSwitchbacker updates
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

19 years agoFix vex_printf padding.
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

19 years agoImplemented backend for ppc64, sharing ppc32 backend.
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

19 years agoAdded 'Bool mode64' to the various backend functions, to distinguish 32/64bit arch's.
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

19 years agofix padding for VexGuestPPC64State
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

20 years agoRe-enabled ppc32 frontend floating point load/store single precision insns:
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

20 years agoFixed a couple of mode32 bugs introduced by mode64
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

20 years agoFix %lr handling for bcctr and bclr.
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

20 years agoSet mode64 from the given guest subarch.
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

20 years agoMissed this in commit of vex: r1475 (ppc64 first pass)
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

20 years agoFirst pass at VEX support of ppc64.
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

20 years agoModify the tree builder to use a fixed-size binding environment rather
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

20 years ago3rd go at making args match format string.
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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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