]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
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

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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 years agoreinstated altivec insn disassembly framework
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

20 years agoTypechecker cleanups (non-functional changes)
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

20 years agoiselInt64Expr: handle 64-bit Mux0X.
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

20 years agoFix mcrxr.
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

20 years agoreinstate lhau, lhaux, sthux, mcrxr
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

20 years agoimplemented Iop_64HLtoV128 in iselVecExpr_wrk
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

20 years agoReinstate stfdux, fctiw.
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

20 years agoCleanups:
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

20 years agorm unused vars in dis_int_ldst_str
Julian Seward [Fri, 9 Sep 2005 09:50:34 +0000 (09:50 +0000)] 
rm unused vars in dis_int_ldst_str

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

20 years agoImplement stswi/stswx.
Julian Seward [Fri, 9 Sep 2005 09:35:29 +0000 (09:35 +0000)] 
Implement stswi/stswx.

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

20 years agoEnhance the dead-code removal pass so that it detects unconditional
Julian Seward [Fri, 9 Sep 2005 08:33:03 +0000 (08:33 +0000)] 
Enhance the dead-code removal pass so that it detects unconditional
side exits and deletes all code after them.  This helps clean up the
IR created by {l,st}sw{i,x} from the ppc32 front end.  It's also a
general transformation which ought to have been implemented long ago.

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

20 years agoImplement lswi and lswx. The generated IR should be good for
Julian Seward [Fri, 9 Sep 2005 08:31:18 +0000 (08:31 +0000)] 
Implement lswi and lswx.  The generated IR should be good for
instrumentation by memcheck and does not reference any memory it
should not.  Unfortunately the IR is long and inefficient.

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

20 years agoReinstate stwbrx.
Julian Seward [Thu, 8 Sep 2005 17:53:03 +0000 (17:53 +0000)] 
Reinstate stwbrx.

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

20 years agoReinstate crand, crnand, crorc.
Julian Seward [Thu, 8 Sep 2005 17:33:27 +0000 (17:33 +0000)] 
Reinstate crand, crnand, crorc.

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

20 years agoImplement mftb{,u}.
Julian Seward [Tue, 6 Sep 2005 10:25:46 +0000 (10:25 +0000)] 
Implement mftb{,u}.

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

20 years agoRemove some helper functions to do with flag handling. These are
Julian Seward [Tue, 6 Sep 2005 09:55:27 +0000 (09:55 +0000)] 
Remove some helper functions to do with flag handling.  These are
unused because the relevant computations are now done in line.

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

20 years agoReinstate lwbrx.
Julian Seward [Tue, 6 Sep 2005 09:10:09 +0000 (09:10 +0000)] 
Reinstate lwbrx.

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

20 years agoObserve any externally supplied $(CC).
Julian Seward [Mon, 29 Aug 2005 12:07:41 +0000 (12:07 +0000)] 
Observe any externally supplied $(CC).

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

20 years agoDon't even mention malloc, since it screws up statically linked, glibc
Julian Seward [Fri, 26 Aug 2005 18:00:31 +0000 (18:00 +0000)] 
Don't even mention malloc, since it screws up statically linked, glibc
Valgrind.

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

20 years agoImplement MOVUPS -- move from G (xmm) to E (mem or xmm) [UNVERIFIED]
Julian Seward [Thu, 25 Aug 2005 21:34:24 +0000 (21:34 +0000)] 
Implement MOVUPS -- move from G (xmm) to E (mem or xmm) [UNVERIFIED]

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

20 years agovex_printf/sprintf hackery.
Julian Seward [Thu, 25 Aug 2005 21:20:18 +0000 (21:20 +0000)] 
vex_printf/sprintf hackery.

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

20 years agoBuild rflag thunk for adc/sbb correctly.
Julian Seward [Wed, 24 Aug 2005 10:56:01 +0000 (10:56 +0000)] 
Build rflag thunk for adc/sbb correctly.

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

20 years agoamd64: Handle BT/BTS/BTR/BTC Gv, Ev.
Julian Seward [Wed, 24 Aug 2005 10:46:19 +0000 (10:46 +0000)] 
amd64: Handle BT/BTS/BTR/BTC Gv, Ev.
x86:   Fix signedness bug in existing BT/BTS/BTR/BTC Gv, Ev code.

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

20 years agoFix incorrect building of the flags thunk after ADC and SBB.
Julian Seward [Wed, 24 Aug 2005 10:01:36 +0000 (10:01 +0000)] 
Fix incorrect building of the flags thunk after ADC and SBB.

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

20 years agoEnable ADC Ib, AL.
Julian Seward [Wed, 24 Aug 2005 09:22:39 +0000 (09:22 +0000)] 
Enable ADC Ib, AL.

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

20 years agoImplement LOOP{,E,NE}.
Julian Seward [Tue, 23 Aug 2005 23:44:35 +0000 (23:44 +0000)] 
Implement LOOP{,E,NE}.

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

20 years agoRename a couple of inconsistently-named helper functions.
Julian Seward [Tue, 23 Aug 2005 23:26:37 +0000 (23:26 +0000)] 
Rename a couple of inconsistently-named helper functions.

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

20 years agoWhitespace-only change.
Julian Seward [Tue, 23 Aug 2005 23:17:38 +0000 (23:17 +0000)] 
Whitespace-only change.

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

20 years agoImplement RDTSC (amd64).
Julian Seward [Tue, 23 Aug 2005 23:16:51 +0000 (23:16 +0000)] 
Implement RDTSC (amd64).

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

20 years agoRename a couple of inconsistently-named helper functions.
Julian Seward [Tue, 23 Aug 2005 19:30:58 +0000 (19:30 +0000)] 
Rename a couple of inconsistently-named helper functions.

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

20 years agoImplement RDTSC on x86.
Julian Seward [Tue, 23 Aug 2005 19:24:29 +0000 (19:24 +0000)] 
Implement RDTSC on x86.

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

20 years agoImplement LOOP/LOOPE/LOOPNE.
Julian Seward [Tue, 23 Aug 2005 17:29:27 +0000 (17:29 +0000)] 
Implement LOOP/LOOPE/LOOPNE.

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

20 years agoEnable testing of RCL insns.
Julian Seward [Tue, 23 Aug 2005 15:41:40 +0000 (15:41 +0000)] 
Enable testing of RCL insns.

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

20 years agoSupport x86 RCL instructions.
Julian Seward [Tue, 23 Aug 2005 15:41:14 +0000 (15:41 +0000)] 
Support x86 RCL instructions.

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

20 years agoOn a PPC32Instr_Call, don't merely record how many integer registers
Julian Seward [Sun, 21 Aug 2005 00:48:37 +0000 (00:48 +0000)] 
On a PPC32Instr_Call, don't merely record how many integer registers
carry parameters.  Instead record the actual identities of such
registers in a bitmask.  This is necessary because the PPC calling
conventions have "holes" in the register ranges.  For example, a
routine taking an UInt(32-bit) first param and an ULong(64-bit) second
param passes the first arg in r3 but the second one in r5 and r6, and
r4 is not used.

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

20 years agoAdd tested but unused code just in case it is useful at some point in
Julian Seward [Thu, 18 Aug 2005 11:50:43 +0000 (11:50 +0000)] 
Add tested but unused code just in case it is useful at some point in
the future: a potentially more memcheck-friendly implementation of
count-leading-zeroes.

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

20 years agodis_Grp2: decode address mode correctly
Julian Seward [Sun, 14 Aug 2005 00:09:58 +0000 (00:09 +0000)] 
dis_Grp2: decode address mode correctly

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

20 years agoHandle Iop_Sar16, so that front end amd64 "cwtd" does not bomb.
Julian Seward [Sat, 13 Aug 2005 23:58:34 +0000 (23:58 +0000)] 
Handle Iop_Sar16, so that front end amd64 "cwtd" does not bomb.

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