]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
11 years agomips64: add support for load indexed instructions from DSP ASE
Petar Jovanovic [Fri, 14 Feb 2014 17:28:15 +0000 (17:28 +0000)] 
mips64: add support for load indexed instructions from DSP ASE

Handling lwx, ldx and lbux for MIPS-Cavium processors.

Patch by Zahid Anwar, with some changes.

Related to Bugzilla issue 326444.

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

11 years agoFix comments and code snippets that were making incorrect claims about
Florian Krohm [Fri, 14 Feb 2014 08:55:32 +0000 (08:55 +0000)] 
Fix comments and code snippets that were making incorrect claims about
the alignment requirement of the guest state, shadow areas, and register
spill area sizes.
The size of these areas ought to be a multiple of 16 bytes.

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

11 years agos390: Fix s390_amode_for_guest_state. In general the offset relative
Florian Krohm [Tue, 11 Feb 2014 09:23:01 +0000 (09:23 +0000)] 
s390: Fix s390_amode_for_guest_state. In general the offset relative
to the guest state pointer may be more than the B12 addressing mode can
handle. Fall back and use a B20 addressing mode in those cases.

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

11 years agoFix the ppc32 special-instruction magic sequence so it really does
Julian Seward [Mon, 10 Feb 2014 12:27:29 +0000 (12:27 +0000)] 
Fix the ppc32 special-instruction magic sequence so it really does
preserve the value of r0, as claimed.  Fixes #278808 (VEX side).

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

11 years agoImplement more aarch64 vector insns:
Julian Seward [Mon, 10 Feb 2014 10:28:13 +0000 (10:28 +0000)] 
Implement more aarch64 vector insns:
{S,U}{MIN,MAX}  Vd.T, Vn.T, Vm.T (8bitx16lane variants)
{S,U}{MIN,MAX}V Vd.T, Vn.T, Vm.T (8bitx16lane variants)
FMOV (vector, immediate)
MOVI (vector, immediate)
FABS (vector)
FNEG (vector)
FMLA (vector)
FMLS (vector)
{AND,BIC,ORR,ORN} (vector)

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

11 years agoAdd support for syscall on x86
Tom Hughes [Sun, 9 Feb 2014 11:40:20 +0000 (11:40 +0000)] 
Add support for syscall on x86

Patch from Ivo Raisr via BZ#330939 also fixes BZ#308729

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

11 years agoImplement a few more vector aarch64 insns:
Julian Seward [Thu, 6 Feb 2014 12:57:58 +0000 (12:57 +0000)] 
Implement a few more vector aarch64 insns:
LD1 {vT.8h}, [xN|SP], #16
LD1 {vT.16b}, [xN|SP], #16
ST1 {vT.4h}, [xN|SP], #8
MUL  Vd.T, Vn.T, Vm.T
PMUL Vd.T, Vn.T, Vm.T  (fe only)
MLA  Vd.T, Vn.T, Vm.T
MLS  Vd.T, Vn.T, Vm.T
UMOV Xd/Wd, Vn.Ts[index]
SMOV Xd/Wd, Vn.Ts[index]

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

11 years agoImplement a few more vector aarch64 insns:
Julian Seward [Wed, 5 Feb 2014 11:01:19 +0000 (11:01 +0000)] 
Implement a few more vector aarch64 insns:
LD1 {vT.4s}, [xN|SP], #16
ADD Dd, Dn, Dm
SUB Dd, Dn, Dm
SMIN Vd.T, Vn.T, Vm.T
UMIN Vd.T, Vn.T, Vm.T
SMAX Vd.T, Vn.T, Vm.T
UMAX Vd.T, Vn.T, Vm.T
SMINV Vd.T, Vn.T, Vm.T
UMINV Vd.T, Vn.T, Vm.T
SMAXV Vd.T, Vn.T, Vm.T
UMAXV Vd.T, Vn.T, Vm.T
DUP Vd.T, Rn
FADD/FSUB/FMUL/FDIV32x4

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

11 years agomips64: Support for Cavium-specific load indexed instructions
Petar Jovanovic [Fri, 31 Jan 2014 12:14:20 +0000 (12:14 +0000)] 
mips64: Support for Cavium-specific load indexed instructions

Support for lhux, lwux, lbx for Cavium.

Patch by Zahid Anwar, with style changes.

Related to Bugzilla issue 326444.

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

11 years agoImprove front and back end support for SIMD instructions on Arm64.
Julian Seward [Sun, 26 Jan 2014 19:11:14 +0000 (19:11 +0000)] 
Improve front and back end support for SIMD instructions on Arm64.

Implement the following instructions -- some but not necessarily
all laneage combinations:

  LD1 {vT.2d},  [Xn|SP]
  ST1 {vT.2d},  [Xn|SP]
  LD1 {vT.4s},  [Xn|SP]
  ST1 {vT.4s},  [Xn|SP]
  LD1 {vT.8h},  [Xn|SP]
  ST1 {vT.8h},  [Xn|SP]
  LD1 {vT.16b}, [Xn|SP]
  ST1 {vT.16b}, [Xn|SP]
  LD1 {vT.1d}, [Xn|SP]
  ST1 {vT.1d}, [Xn|SP]
  LD1 {vT.2s}, [Xn|SP]
  ST1 {vT.2s}, [Xn|SP]
  LD1 {vT.4h}, [Xn|SP]
  ST1 {vT.4h}, [Xn|SP]
  LD1 {vT.8b}, [Xn|SP]
  ST1 {vT.8b}, [Xn|SP]
  ST1 {vT.2d}, [xN|SP], #16
  LD1 {vT.2d}, [xN|SP], #16
  ST1 {vT.4s}, [xN|SP], #16
  ST1 {vT.8h}, [xN|SP], #16
  ST1 {vT.2s}, [xN|SP], #8
  SCVTF Vd, Vn
  UCVTF Vd, Vn
  FADD Vd,Vn,Vm   1
  FSUB Vd,Vn,Vm   2
  FMUL Vd,Vn,Vm   3
  FDIV Vd,Vn,Vm   4
  FMLA Vd,Vn,Vm   5
  FMLS Vd,Vn,Vm   6
  ADD Vd.T, Vn.T, Vm.T
  SUB Vd.T, Vn.T, Vm.T
  XTN {,2}
  DUP Vd.T, Vn.Ts[index]

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

11 years agoMake the following primops take a third (initial) argument to
Julian Seward [Sun, 26 Jan 2014 18:34:23 +0000 (18:34 +0000)] 
Make the following primops take a third (initial) argument to
indicate the rounding mode to use, like their scalar cousins do:

  Iop_Add32Fx4  Iop_Sub32Fx4  Iop_Mul32Fx4  Iop_Div32Fx4
  Iop_Add64Fx2  Iop_Sub64Fx2  Iop_Mul64Fx2  Iop_Div64Fx2
  Iop_Add64Fx4  Iop_Sub64Fx4  Iop_Mul64Fx4  Iop_Div64Fx4
  Iop_Add32Fx8  Iop_Sub32Fx8  Iop_Mul32Fx8  Iop_Div32Fx8

Fix up the x86 and amd64 front ends to add fake rounding modes
(Irrm_NEAREST) when generating expressions using these primops.
Fix up the x86 and amd64 back ends to accept these as triops
rather than as binops, and ignore the first arg.

Add three more ir_opt folding rules to remove memcheck
instrumentation arising from instrumentation of known-defined
rounding modes.

Overall functional and performance effects should be zero.

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

11 years agoThis patch by adrian.sendroiu@freescale.com fixes the lrmw and stmw
Carl Love [Fri, 24 Jan 2014 16:42:26 +0000 (16:42 +0000)] 
This patch by adrian.sendroiu@freescale.com fixes the lrmw and stmw
instructions.

The patch also adds ppc32 and ppc64 test cases for the instructions.

The patch is a fix for bugzilla 329956 "valgrind crashes when lmw/stmw instructions are used on ppc64".

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

11 years agoWhitespace-only change: restrict to 80 col width.
Julian Seward [Tue, 21 Jan 2014 16:33:51 +0000 (16:33 +0000)] 
Whitespace-only change: restrict to 80 col width.

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

11 years agomips64: Change the initial value of fpu registers.
Dejan Jevtic [Wed, 15 Jan 2014 16:26:31 +0000 (16:26 +0000)] 
mips64: Change the initial value of fpu registers.

Initial value of mips fpu registers should be nan instead of 0xffffffffffffffff.

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

11 years agoarm64: rename guest_SP to guest_XSP so as to avoid a name clash with
Julian Seward [Wed, 15 Jan 2014 10:25:21 +0000 (10:25 +0000)] 
arm64: rename guest_SP to guest_XSP so as to avoid a name clash with
guest_SP from s390 world.  Also back out the rename of guest_SP to
guest_s390_SP that caused s390 build breakage in r2803.

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

11 years agoAdd missing ULLs to some 64-bit immediates.
Julian Seward [Sun, 12 Jan 2014 18:23:45 +0000 (18:23 +0000)] 
Add missing ULLs to some 64-bit immediates.

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

11 years agoAdd support for ARMv8 AArch64 (the 64 bit ARM instruction set):
Julian Seward [Sun, 12 Jan 2014 12:49:10 +0000 (12:49 +0000)] 
Add support for ARMv8 AArch64 (the 64 bit ARM instruction set):
integer and FP instructions.

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

11 years agoLibVEX_GuestAMD64_initialise(): give an initial value for
Julian Seward [Wed, 11 Dec 2013 16:47:59 +0000 (16:47 +0000)] 
LibVEX_GuestAMD64_initialise(): give an initial value for
guest_ACFLAG.  Kinda worrying that this was missing.

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

11 years agoThe result of rounding a 128-bit BFP/DFP value to 32/64 bit needs to
Florian Krohm [Tue, 10 Dec 2013 16:51:15 +0000 (16:51 +0000)] 
The result of rounding a 128-bit BFP/DFP value to 32/64 bit needs to
be stored in a register pair. This constraint was not observed previously
and the result was stored in any FPR that happened to be chosen. If the
selected FPR was not identifying a proper FPR pair, a SIGILL was delivered.
Fixes BZ #328455.

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

11 years agoBug 328100 - XABORT not implemented.
Mark Wielaard [Mon, 9 Dec 2013 12:54:06 +0000 (12:54 +0000)] 
Bug 328100 - XABORT not implemented.

XABORT can be called even when there is no current transaction.
In such a case XABORT acts as a NOP. Implement xabort as nop.

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

11 years agomips32/64: Fixed the problem with fpu instructions.
Dejan Jevtic [Thu, 14 Nov 2013 15:44:42 +0000 (15:44 +0000)] 
mips32/64: Fixed the problem with fpu instructions.

Include the value of fcsr register when emitting
some fpu instructions.
Calculate a new value of the fcsr register after
some FPU instructions.

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

11 years agoFix Bug 327284. The condition code of risbg was not correct.
Christian Borntraeger [Thu, 7 Nov 2013 21:37:28 +0000 (21:37 +0000)] 
Fix Bug 327284. The condition code of risbg was not correct.
This instruction might be used by by gcc for masking out bits,
e.g. code like
 n &= 3;
  if (n == 0)

might result in
        risbg   %r4,%r4,62,128+63,0
        je      <target>

The old code set the condition code depending on the operand before
masking. Fix it. This patch also indicates that we need test suite
coverage for risbg and friends.

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

11 years agomips32: Fix problem with some mips32 dsp instructions.
Dejan Jevtic [Wed, 23 Oct 2013 14:05:15 +0000 (14:05 +0000)] 
mips32: Fix problem with some mips32 dsp instructions.

This patch includes VEX optimizations for mips32 and
fixes for some mips32 dsp instructions.

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

11 years agomips32: Fixed the problem with FCSR register.
Dejan Jevtic [Tue, 22 Oct 2013 08:52:46 +0000 (08:52 +0000)] 
mips32: Fixed the problem with FCSR register.

Until now, Valgrind has read two registers to calculate FCSR
value. From now on, Valgrind reads exact number of fpu
registers (one or two).

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

11 years agoIn 64 bit mode, allow 64 bit return values from clean helper calls.
Julian Seward [Mon, 21 Oct 2013 10:05:33 +0000 (10:05 +0000)] 
In 64 bit mode, allow 64 bit return values from clean helper calls.
This makes SMC checking calls work (even though they are irrelevant
on PPC targets).  Fixes #309430.

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

11 years agoUpdate copyright dates (20XY-2012 ==> 20XY-2013)
Julian Seward [Fri, 18 Oct 2013 14:12:58 +0000 (14:12 +0000)] 
Update copyright dates (20XY-2012 ==> 20XY-2013)

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

11 years agoHandle PCMPxSTRx cases 0x30 and 0x40. Fixes #320998.
Julian Seward [Fri, 18 Oct 2013 10:45:21 +0000 (10:45 +0000)] 
Handle PCMPxSTRx cases 0x30 and 0x40.  Fixes #320998.

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

11 years agoThis commit adds support for the following instructions:
Carl Love [Fri, 18 Oct 2013 01:19:06 +0000 (01:19 +0000)] 
This commit adds support for the following instructions:
  vaddcuq, vadduqm, vaddecuq, vaddeuqm,
  vsubcuq, vsubuqm, vsubecuq, vsubeuqm,
  vbpermq and vgbbd.

The vgbbd instruction required a new Iop -- Iop_PwBitMtxXpose64x2.
All other instructions were emulated using existing Iops.

The completes adding the Power ISA 2.07 support.

Bugzilla 325816

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

11 years agoPower 8 support, phase 5
Carl Love [Tue, 15 Oct 2013 18:11:20 +0000 (18:11 +0000)] 
Power 8 support, phase 5

This commit adds support for the following instructions for doing
various arithmetic, bit transformation, cipher, count, logical,
and SHA operations.

  vpmsumb, vpmsumh, vpmsumw, vpmsumd, vpermxor, vcipher, vcipherlast,
  vncipher, vncipherlast, vsbox,
  vclzb, vclzw, vclzh, vclzd,
  vpopcntb, vpopcnth, vpopcntw, vpopcntd,
  vnand, vorc, veqv,
  vshasigmaw, vshasigmad,
  bcdadd, bcdsub

The following Iops were added to support the above instructions:
  Iop_BCDAdd, Iop_BCDSub,
  Iop_PolynomialMulAdd8x16, Iop_PolynomialMulAdd16x8,
  Iop_PolynomialMulAdd32x4, Iop_PolynomialMulAdd64x2,
  Iop_CipherV128, Iop_CipherLV128, Iop_CipherSV128,
  Iop_NCipherV128, Iop_NCipherLV128,
  Iop_SHA512, Iop_SHA256, Iop_Clz64x2

The patch is for Bugzilla 325628

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

11 years agoTidyup -- no functional change. Replace all "pfx & PFX_LOCK"
Julian Seward [Tue, 15 Oct 2013 17:29:19 +0000 (17:29 +0000)] 
Tidyup -- no functional change.  Replace all "pfx & PFX_LOCK"
with haveLOCK(pfx).

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

11 years agoamd64 front end: accept XACQUIRE and XRELEASE on exactly the insns that
Julian Seward [Tue, 15 Oct 2013 17:21:42 +0000 (17:21 +0000)] 
amd64 front end: accept XACQUIRE and XRELEASE on exactly the insns that
the Intel docs say can validly have them.

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

11 years agoAdd support for an alternative encoding of 'PUSH reg', viz FF /6,
Julian Seward [Mon, 14 Oct 2013 21:47:14 +0000 (21:47 +0000)] 
Add support for an alternative encoding of 'PUSH reg', viz FF /6,
that is used by MSVC generated code.  Fixes #324834.

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

11 years agoPPC32/64: Allow 16 byte icache lines.
Julian Seward [Mon, 14 Oct 2013 11:40:24 +0000 (11:40 +0000)] 
PPC32/64: Allow 16 byte icache lines.
Partial fix for #308135.  (christophe.leroy@c-s.fr)

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

11 years agoPower PC, add the two privileged Transactional Memory instructions.
Carl Love [Wed, 9 Oct 2013 17:52:01 +0000 (17:52 +0000)] 
Power PC, add the two privileged Transactional Memory instructions.

The initial Transactional Memory instruction patch did not include the two
privileged (OS) instructions.  This patch adds support for the two
instructions, treclaim and trechkpt.

The patch if for Bugzilla 325751.

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

11 years agomips64: add extra Iop cases in VEX.
Dejan Jevtic [Mon, 7 Oct 2013 10:28:56 +0000 (10:28 +0000)] 
mips64: add extra Iop cases in VEX.

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

11 years agoFix guest_amd64_toIR xbegin and xtest to match cpuid given for AVX hwcaps.
Mark Wielaard [Fri, 4 Oct 2013 22:31:48 +0000 (22:31 +0000)] 
Fix guest_amd64_toIR xbegin and xtest to match cpuid given for AVX hwcaps.

Otherwise valgrind none/tests/amd64/tm1.vgtest might fail on amd64-avx.

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

11 years ago Phase 4 support for IBM Power ISA 2.07
Carl Love [Thu, 3 Oct 2013 21:38:45 +0000 (21:38 +0000)] 
 Phase 4 support for IBM Power ISA 2.07

This patch adds support for the following instructions for doing
various arithmetic, logic, and load/store VSX operations:

  xscvsxdsp xscvuxdsp xsaddsp xssubsp xsdivsp xsmaddasp xsmaddmsp
  xsmsubasp xsmsubmsp xsnmaddasp xsnmaddmsp xsnmsubasp xsnmsubmsp
  xsmulsp xssqrtsp xsresp xsrsqrtesp xsrsp xxlorc xxlnand xxleqv
  lxsiwzx lxsiwax lxsspx stxsiwx stxsspx

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>
Bugzilla 325477

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

11 years agoPower PC, Approach 1, add Transactional Memory instruction support
Carl Love [Wed, 2 Oct 2013 16:25:57 +0000 (16:25 +0000)] 
Power PC, Approach 1, add Transactional Memory instruction support

The following Transactional Memory instructions are added:
  tbegin., tend., tsr., tcheck., tabortwc.,
  tabortdc., tabortwci., tabortdci., tabort.

The patch implements the first proposal by Julian on how to handle the
TM instructions. The proposal is as follows:

    translate "XBEGIN fail-addr" as "goto fail-addr"; that is: push
    simulated execution directly onto the failure path.  This is simple
    but will have poor performance, if (as is likely) the failure path
    uses normal locking and is not tuned for speed.

The tbegin instruction on Power sets the condition code register to
indicate if the tbegin instruction suceeded or failed.  The compiler
then generates a conditional branch instruction to take the success
or failure code path for the tbegin instruction.  In order to fail the
tbegin instruction, the condition code register is updated to indicate
that the tbegin instruction failed.  This patch assumes that there is
always an error handler for the tbegin instruction.  The other TM
instructions are all treated as no ops as we shouldn't be executing the
sucess transactional code path.

Signed-off-by: Carl Love <cel@us.ibm.com>
Bugzilla 323803

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

11 years agoPhase 3 support for IBM Power ISA 2.07
Carl Love [Tue, 1 Oct 2013 15:45:54 +0000 (15:45 +0000)] 
Phase 3 support for IBM Power ISA 2.07

This patch adds support for the following vector instructions for doing
arithmetic, min, max, shift, pack, unpack and rotate:

  vsubudm, vmaxud, vmaxsd, vminud, vminsd, vmulouw,
  vmuluwm, vmulosw, vmuleuw, vmulesw, vcmpequd, vcmpgtud, vcmpgtsd,
  vrld, vsld, vsrad, vsrd, vpkudus, vpksdus, vpksdss,
  vupkhsw, vupklsw, vmrgew, vmrgow

The following Iops were added to support the above instructions:
  Iop_MullEven32Ux4, Iop_MullEven32Sx4, Iop_Max64Sx2, Iop_Max64Ux2,
  Iop_Min64Sx2, Iop_Min64Ux2, Iop_CmpGT64Ux2, Iop_Rol64x2,
  Iop_QNarrowBin64Sto32Ux4, Iop_QNarrowBin64Uto32Ux4, Iop_NarrowBin64to32x4,

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>
Bugzilla 324894

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

11 years agoImplement LDRHT (Thumb), LDRSHT (Thumb), [LDR,ST]{S}[B,H]T (ARM).
Julian Seward [Sun, 29 Sep 2013 19:48:44 +0000 (19:48 +0000)] 
Implement LDRHT (Thumb), LDRSHT (Thumb), [LDR,ST]{S}[B,H]T (ARM).
Fixes 321891, 323035, 324047.  (vasily.golubev@gmail.com)

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

11 years agoImplement LDRHT (Thumb), LDRSHT (Thumb), [LDR,ST]{S}[B,H]T (ARM).
Julian Seward [Sun, 29 Sep 2013 18:24:15 +0000 (18:24 +0000)] 
Implement LDRHT (Thumb), LDRSHT (Thumb), [LDR,ST]{S}[B,H]T (ARM).
Fixes 321891, 323035, 324047.  (vasily.golubev@gmail.com)

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

11 years agoAdd a kludgey implementation of XTEST to go with the kludgey
Julian Seward [Fri, 27 Sep 2013 15:03:58 +0000 (15:03 +0000)] 
Add a kludgey implementation of XTEST to go with the kludgey
implementation of XBEGIN.  Also kludge the CPUID output for AVX
capable targets so as to claim we support HTM.
Mark Wielaard, mjw@redhat.com)

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

11 years agoarmg_calculate_condition: add missing masking (probably pointless,
Julian Seward [Fri, 27 Sep 2013 12:11:50 +0000 (12:11 +0000)] 
armg_calculate_condition: add missing masking (probably pointless,
but makes it easy to verify).

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

11 years agomips64: finetune mips_dirtyhelper_calculate_FCSR
Petar Jovanovic [Tue, 24 Sep 2013 22:27:23 +0000 (22:27 +0000)] 
mips64: finetune mips_dirtyhelper_calculate_FCSR

Several MIPS32 Revision 2 instructions also belong to Revision 1 of MIPS64.
Modifing parts of mips_dirtyhelper_calculate_FCSR to be active for MIPS64R1.

This fixes none/tests/mips64/round when Valgrind is compiled for MIPS64 R1.

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

11 years agomips32: protect mips32r2 instructions with a flag
Petar Jovanovic [Sat, 21 Sep 2013 01:47:18 +0000 (01:47 +0000)] 
mips32: protect mips32r2 instructions with a flag

Regression issue that came when mips_dirtyhelper_calculate_FCSR was added.
Inline assembly with MIPS32r2 instructions needs to be protected by flags
that disable it for non-MIPS32r2 platforms such as some Broadcom boards.

Fixes the issue: Bugzilla 325124.

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

11 years agomips32/64: Save the value of FCSR register at the beginning and restore it
Dejan Jevtic [Fri, 20 Sep 2013 09:58:16 +0000 (09:58 +0000)] 
mips32/64: Save the value of FCSR register at the beginning and restore it
back at the end of dirty helper.

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

11 years agomips32/64: Code cleanup and VEX optimizations. No functional changes.
Dejan Jevtic [Thu, 19 Sep 2013 13:35:45 +0000 (13:35 +0000)] 
mips32/64: Code cleanup and VEX optimizations. No functional changes.

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

11 years agomips32/64: Fix the problem with dirty helper when the
Dejan Jevtic [Thu, 19 Sep 2013 10:22:42 +0000 (10:22 +0000)] 
mips32/64: Fix the problem with dirty helper when the
__mips_isa_rev is not 2 on higher.

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

11 years agoAdd support for the Intel TM "xbegin" instruction, by jumping directly
Julian Seward [Wed, 18 Sep 2013 19:41:43 +0000 (19:41 +0000)] 
Add support for the Intel TM "xbegin" instruction, by jumping directly
to the failure address.  Currently disabled pending finding hardware
that can actually execute xbegin, for testing purposes.

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

11 years agox86 front ends: tighten up decoding of MOV Ib,Eb and MOV Iv,Ev. This
Julian Seward [Wed, 18 Sep 2013 18:27:55 +0000 (18:27 +0000)] 
x86 front ends: tighten up decoding of MOV Ib,Eb and MOV Iv,Ev.  This
failed to check the g-register in the modrm byte, with the result that
it will mis-decode the AVX2 XABORT and XBEGIN instructions as these
instead, with obviously-bizarre consequences.

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

11 years agoUnbreak the build on non-MIPS platforms.
Tom Hughes [Wed, 18 Sep 2013 11:24:25 +0000 (11:24 +0000)] 
Unbreak the build on non-MIPS platforms.

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

11 years agomips32/mips64: additional VEX support for FCSR register.
Dejan Jevtic [Wed, 18 Sep 2013 10:06:13 +0000 (10:06 +0000)] 
mips32/mips64: additional VEX support for FCSR register.

Some mips fpu instructions are changing the value of the
fcsr register so we need to update the value of the fcsr
register in the guest state.

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

11 years agomips64: VEX support for MIPS64 Octeon Instructions
Petar Jovanovic [Wed, 18 Sep 2013 02:17:43 +0000 (02:17 +0000)] 
mips64: VEX support for MIPS64 Octeon Instructions

Modeling the following Cavium Octeon instructions:

exts, exts32, cins, cins32, snei, sne, seqi, dmul, seq.

Patch by Zahid Anwar.

Bugzilla issue 322150

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

11 years agomips: clean-up in hardware detection (Cavium/DSP ASEs)
Petar Jovanovic [Mon, 16 Sep 2013 18:11:59 +0000 (18:11 +0000)] 
mips: clean-up in hardware detection (Cavium/DSP ASEs)

This change is a clean up in MIPS hardware detection code.
New flag for Cavium Company ID is added, as well as the codes for 34K and
74K processors (MIPS Company ID). The later two represent platforms with DSP
ASEs implemented (Rev 1 and Rev 2 respectively). Macros to detect these two
platforms have been added as well.

Additional macros to extract Company ID out of hwcaps added as well, and
used where possible.

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

11 years agomips32: small cleanup in show_hwcaps_mips32
Petar Jovanovic [Sun, 15 Sep 2013 23:38:39 +0000 (23:38 +0000)] 
mips32: small cleanup in show_hwcaps_mips32

Small cleanup in show_hwcaps_mips32(). More will follow as we need to add
support for Cavium boards too.

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

11 years agos390: Add spechelper for s390_calculate_cc.
Florian Krohm [Fri, 13 Sep 2013 21:42:14 +0000 (21:42 +0000)] 
s390: Add spechelper for s390_calculate_cc.

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

11 years agoBug 323893 - SSE3 not available on amd cpus in valgrind.
Mark Wielaard [Fri, 13 Sep 2013 13:30:45 +0000 (13:30 +0000)] 
Bug 323893 - SSE3 not available on amd cpus in valgrind.

Check minimum hardware capabilities, not exact matches to prevent
downgrading to baseline if the hardware has more capabilities than
we expect.

Note that this is still not exactly correct. CPUID should depend on
VEX capabilities, not on underlying CPU, see bug 324882.

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

11 years agoThe Power ISA 2.07 document includes a correction to the description for the
Carl Love [Thu, 12 Sep 2013 17:26:42 +0000 (17:26 +0000)] 
The Power ISA 2.07 document includes a correction to the description for the
behavior of the xscvspdp instruction, indicating that if the source argument
is a SNaN, it is first changed to a QNaN before being converted from
single-precision to double-precision. This updated information about the
xscvspdp instruction exposed a bug in the VEX implementation for that
instruction and also a bug in the testing for all instructions having
special behavior for single-precision SNaN arguments.

This patch fixes both the VEX bug in xscvspdp implementation:
The current implementation of xscvspdp emulates the instruction by
extracting the single-precision floating point from the vector register,
storing it in single-prcision, and then loading the data just stored using
the lfsx instruction. But the lfsx instruction does not change SNaN input
arguments to QNaN inputs before conversion to double-precision, so this
emulation is not sufficient for the xscvspdp instruction as described in the
current documentation. This patch fixes that issue by recognizing a SNaN input
and changing it to a QNaN before performing the emulation using lfsx.
While fixing the bug in xscvspdp implementation, it was also discovered that
xvcvspdp had the same issue where SNaN inputs were not being handled correctly,
so this patch also fixes its implementation, too

See bugzilla 324816.

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

11 years agoRemove dead code.
Florian Krohm [Thu, 12 Sep 2013 11:32:05 +0000 (11:32 +0000)] 
Remove dead code.

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

11 years agoEnhance ado_treebuild_BB to allow an expression preceding a Put
Florian Krohm [Wed, 11 Sep 2013 17:58:32 +0000 (17:58 +0000)] 
Enhance ado_treebuild_BB to allow an expression preceding a Put
statement and containing one or more Get expressions to be
substituted in an expression following the Put statement.
That transformation is harmless as long as the guest state areas being
accessed by the Put and Get(s) do not overlap.

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

11 years agomips64: fixed problem with Iop's for mips64.
Dejan Jevtic [Wed, 11 Sep 2013 15:34:37 +0000 (15:34 +0000)] 
mips64: fixed problem with Iop's for mips64.

Fixed problem with some Iop's that was discovered while running vbit-test
on mips64. Fixed operations are: Iop_1Uto64, Iop_Left64 and Iop_CmpwNEZ64.

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

11 years agoBugzilla 323437, this is phase 2 in a series of patches adding support for IBM
Carl Love [Tue, 10 Sep 2013 18:46:40 +0000 (18:46 +0000)] 
Bugzilla 323437, this is phase 2 in a series of patches adding support for IBM
Power ISA 2.07. The first bugzilla in the series was: 322294: Add initial
support for IBM Power ISA 2.07

Phase 2 adds support for the following new instructions to
VEX/priv/guest_ppc_toIR.c:
 - lq, stq, lqarx, stqcx.
 - mfvsrwz, mtvsrwz
 - fmrgew, fmrgow

There is a corresponding test case for these instructions, see the bugzilla
for the commit number.

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

11 years agoAdd a few more optimisations for CmpwNEZ64, CmpNEZ32, and CmpNEZ64.
Florian Krohm [Fri, 6 Sep 2013 23:13:39 +0000 (23:13 +0000)] 
Add a few more optimisations for CmpwNEZ64, CmpNEZ32, and CmpNEZ64.
Observed on s390.

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

11 years agoThe existing overflow detection in VEX/priv/guest_ppc_toIR.c/set_XER_OV_64()
Carl Love [Fri, 6 Sep 2013 22:27:34 +0000 (22:27 +0000)] 
The existing overflow detection in VEX/priv/guest_ppc_toIR.c/set_XER_OV_64()
under the case PPCG_FLAG_OP_MULLW: does not apply to the mulldo as we need to
detect overflow when performing a Multiply Low Doubleword (not Multiply Low
Word). Hence, we added a new enumeration value PPCG_FLAG_OP_MULLD in
VEX/priv/guest_ppc_defs.h and a corresponding new case under which the
computation for detecting overflow for mulldo/mulldo. is added in
set_XER_OV_64(). The tests have been added to: none/tests/ppc32/jm-insns.c

Bugzilla 324594, submitted by Anmol P. Paralkar

Patch reviewed and tested by Carl Love

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

11 years agoThe patch used the binary constants 0b10000 and 0b10001. The 0b designator
Carl Love [Fri, 6 Sep 2013 16:49:42 +0000 (16:49 +0000)] 
The patch used the binary constants 0b10000 and 0b10001.  The 0b designator
is supported by the GCC extensions but not all compilers seem to support the
0b extension in GCC.  Therefore, the binary constats were changed to their
equivalent hex values as suggested by Florian.

The Bugzilla for the change is 324518.

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

11 years agoUpdate list of ignored files.
Florian Krohm [Fri, 6 Sep 2013 15:04:39 +0000 (15:04 +0000)] 
Update list of ignored files.

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

11 years agoThe current code is not properly handling a non-zero TH field in the
Carl Love [Thu, 5 Sep 2013 19:47:40 +0000 (19:47 +0000)] 
The current code is not properly handling a non-zero TH field in the
dcbt instruction, which is valid for several forms of data cache block
touch instructions.  This patch adds the needed support to
VEX/priv/guest_ppc_toIR.c.

Bugzilla 324518

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

11 years agodeltaIRExpr cannot handle Iex_VECRET and Iex_BBPTR and
Florian Krohm [Tue, 3 Sep 2013 21:48:02 +0000 (21:48 +0000)] 
deltaIRExpr cannot handle Iex_VECRET and Iex_BBPTR and
needs to be guarded.

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

11 years agomips32/mips64: Fix the problem with lwl and lwr for mips32 and mips64.
Dejan Jevtic [Mon, 2 Sep 2013 15:35:58 +0000 (15:35 +0000)] 
mips32/mips64: Fix the problem with lwl and lwr for mips32 and mips64.

This patch is fixing the problem with lwl and lwr for mips32 and mips64
that was discovered while running v8 tests for mips32.

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

11 years agoComment-only change.
Julian Seward [Mon, 2 Sep 2013 13:17:49 +0000 (13:17 +0000)] 
Comment-only change.

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

11 years agoAdd an optimisation for Iop_Left64.
Florian Krohm [Sun, 1 Sep 2013 20:17:23 +0000 (20:17 +0000)] 
Add an optimisation for Iop_Left64.

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

11 years agoAdd algebraic simplifications for Iop_And64 (same as for Iop_And32).
Florian Krohm [Sun, 1 Sep 2013 14:22:05 +0000 (14:22 +0000)] 
Add algebraic simplifications for Iop_And64 (same as for Iop_And32).
Remove isOnesU32 which is no longer needed.

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

11 years agoSupport mmxext (integer sse) subset on i386 (athlon).
Mark Wielaard [Tue, 27 Aug 2013 10:19:03 +0000 (10:19 +0000)] 
Support mmxext (integer sse) subset on i386 (athlon).

Some processors like the AMD Athlon "Classic" support mmxext,
a sse1 subset. This subset is not properly detected by VEX.
The subset uses the same encoding as the sse1 instructions.

The subset is described at:
  http://support.amd.com/us/Embedded_TechDocs/22466.pdf
  https://en.wikipedia.org/wiki/3DNow!#3DNow.21_extensions

This introduces a new VEX_HWCAPS_X86_MMXEXT that sits between
the baseline (0) and VEX_HWCAPS_X86_SSE1. There is also a new
x86g_dirtyhelper_CPUID_mmxext to mimics a Athlon "Classic"
(Model 2, K75 "Pluto/Orion").

Groups all mmxext instructions together in one block.

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

11 years agomips64: Fix a problem with CCall.retty type.
Dejan Jevtic [Fri, 16 Aug 2013 12:11:20 +0000 (12:11 +0000)] 
mips64: Fix a problem with CCall.retty type.

Fix a problem when CCall needs to return 64 bits
for return type.

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

11 years agoAdd support for 256-bit return values for dirty helpers (amd64 only).
Julian Seward [Fri, 16 Aug 2013 08:32:15 +0000 (08:32 +0000)] 
Add support for 256-bit return values for dirty helpers (amd64 only).
(Patrick J. LoPresti, lopresti@gmail.com).  Bug 294285.

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

11 years agoEliminate IRExprP__VECRET and IRExprP__BBPTR and introduce two new
Florian Krohm [Thu, 15 Aug 2013 20:54:52 +0000 (20:54 +0000)] 
Eliminate IRExprP__VECRET and IRExprP__BBPTR and introduce two new
IRExpr kinds instead: Iex_VECRET and Iex_BBPTR. Add constructor
functions and adjust ppIRExpr, typeOfIRxpr and deepCopyExpr. The
rest is mechanics.

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

11 years agomips32/mips64: Fix compiler warnings.
Dejan Jevtic [Thu, 15 Aug 2013 13:38:26 +0000 (13:38 +0000)] 
mips32/mips64: Fix compiler warnings.

Fix some compiler warnings when compiling Valgrind for no mips arch.

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

11 years agoInitial ISA 2.07 support for POWER8-tuned libc
Carl Love [Mon, 12 Aug 2013 18:01:40 +0000 (18:01 +0000)] 
Initial ISA 2.07 support for POWER8-tuned libc

The IBM Power ISA 2.07 has been published on power.org, and IBM's new POWER8
processor is under development to implement that ISA. This patch provides
initial VEX support for running Valgrind on POWER8 systems running a soon-to-be
released Linux distribution. This Linux distro will include a POWER8-tuned
libc that uses a subset of the new instructions from ISA 2.07. Since virtually
all applications link with libc, it would be impossible to run an application
under Valgrind on this distro without adding support for these new instructions
to Valgrind, so that's the intent of this patch. Note that applications built
on this distro will *not* employ new POWER8 instructions by default. There are
roughly 150 new instructions in the Power ISA 2.07, including hardware
transaction management (HTM). Support for these new instructions (modulo the
subset included in this bug) will be added to Valgrind in a phased approach,
similar to what we did for Power ISA 2.06.

Bugzilla 322294

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

12 years agoAdd infrastructural support (IR, VEX) to allow returns of 128-
Julian Seward [Thu, 8 Aug 2013 10:28:59 +0000 (10:28 +0000)] 
Add infrastructural support (IR, VEX) to allow returns of 128-
and 256-bit values from dirty helper functions, in a way which is
independent of the target ABIs and of compilers generating
correct struct return code.

Is a prereq for bug #294285.

MIPS fixes: Petar Jovanovic, mips32r2@gmail.com
S390 fixes: Maran, maranp@linux.vnet.ibm.com

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

12 years agoAdd a spec rule for SUBQ/NLE.
Julian Seward [Wed, 7 Aug 2013 09:45:08 +0000 (09:45 +0000)] 
Add a spec rule for SUBQ/NLE.

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

12 years agoUpdate Makefile-gcc to include additional files that were added in r2702.
Florian Krohm [Sat, 3 Aug 2013 20:57:17 +0000 (20:57 +0000)] 
Update Makefile-gcc to include additional files that were added in r2702.
Fixes BZ 319494.
Patch by Stephen McCamant (smcc@CS.Berkeley.EDU).

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

12 years agoDo not use the 0b notation as older GCC's do not accept it.
Florian Krohm [Sat, 3 Aug 2013 20:39:32 +0000 (20:39 +0000)] 
Do not use the 0b notation as older GCC's do not accept it.
Fixes BZ 322851 and also unbreaks the OS X nightly build (hopefully).
Patch by Thomas Rast (trast@student.ethz.ch).

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

12 years agoRename ppc_cache_line_szB to indicate that this is the size
Florian Krohm [Sat, 3 Aug 2013 19:36:55 +0000 (19:36 +0000)] 
Rename ppc_cache_line_szB to indicate that this is the size
of the instruction cache.

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

12 years agomips32: Correctly model SHLL_S.PH on MIPS32.
Dejan Jevtic [Fri, 2 Aug 2013 16:02:28 +0000 (16:02 +0000)] 
mips32: Correctly model SHLL_S.PH on MIPS32.

Fix problem with IRTemp size when modeling SHLL_S.PH on MIPS32.

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

12 years agos390: New machine model: zBC12
Florian Krohm [Sun, 28 Jul 2013 15:28:57 +0000 (15:28 +0000)] 
s390: New machine model: zBC12

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

12 years agomips32: Add support for mips32 DSP instruction set.
Dejan Jevtic [Thu, 25 Jul 2013 09:08:03 +0000 (09:08 +0000)] 
mips32: Add support for mips32 DSP instruction set.

Add support for mips32 DSP and DSP revision 2 ASE.
More details about the mips32 DSP(r2) ASE:
http://www.mips.com/media/files/MD00566-2B-MIPSDSP-QRC-01.00.pdf
Applied patch provided by Maja Gagic <maja.gagic@rt-rk.com>

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

12 years agoImplement the following instructions, in both ARM and Thumb
Julian Seward [Thu, 4 Jul 2013 20:35:42 +0000 (20:35 +0000)] 
Implement the following instructions, in both ARM and Thumb
encodings:
  SSAX SXTAB16 SHASX SHSAX SHSUB16 SHSUB8
  UASX USAX UQADD16 UQASX UQSAX UHASX UHSAX REVSH

Fixes
  321363 321364 321466 321467 321468 321619 321704
  321620 321621 321692 321694 321696 321697 321703

(Vasily, w.golubev@mail.ru)

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

12 years agoAdd support for
Julian Seward [Thu, 4 Jul 2013 15:25:36 +0000 (15:25 +0000)] 
Add support for
(T1) STRBT reg+#imm8
(T1) STRHT reg+#imm8
(T1) LDRBT reg+#imm8
(T1) LDRSBT reg+#imm8
(T1) PLI reg+#imm12
(T2) PLI reg-#imm8
(T3) PLI PC+/-#imm12

Fixes: 319858 319932 320083 321693 321148
(Vasily, w.golubev@mail.ru)

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

12 years agomips: implement Iop_8Uto64 in iselInt64Expr
Petar Jovanovic [Thu, 4 Jul 2013 00:39:37 +0000 (00:39 +0000)] 
mips: implement Iop_8Uto64 in iselInt64Expr

Iop_8Uto64 was missing in iselInt64Expr.
The change should resolve Bugzilla #319505.

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

12 years agos390: Support some more BFP <-> DFP conversions (the ones
Florian Krohm [Mon, 17 Jun 2013 21:03:56 +0000 (21:03 +0000)] 
s390: Support some more BFP <-> DFP conversions (the ones
that were added in VEX r2727).
Patch by Maran Pakkirisamy (maranp@linux.vnet.ibm.com).
Part of fixing BZ 307113.

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

12 years agoAdd some more IRops to convert between binary floating point and
Florian Krohm [Mon, 17 Jun 2013 18:59:51 +0000 (18:59 +0000)] 
Add some more IRops to convert between binary floating point and
decimal floating point values. Needed to complete s390 DFP support.
Patch by Maran Pakkirisamy (maranp@linux.vnet.ibm.com).
Part of fixing BZ 307113.

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

12 years agomips64: fix 'unused variable' warning
Petar Jovanovic [Sun, 9 Jun 2013 16:46:14 +0000 (16:46 +0000)] 
mips64: fix 'unused variable' warning

On a couple of places, the code expected either _MIPSEB or _MIPSEL flag to
use some variables, but none of these flags is set when the code is compiled
for non-MIPS architectures.

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

12 years agoEliminate IRRoundingModeDFP by merging its values into IRRoundingMode.
Florian Krohm [Thu, 6 Jun 2013 19:12:46 +0000 (19:12 +0000)] 
Eliminate IRRoundingModeDFP by merging its values into IRRoundingMode.
Retain encodings. The rationale is that a rounding mode is an abstraction
and as such independent of formats used to represent numeric values.
This was triggered by the need for a rounding mode to express conversions
between binary floating point values and decimal floating point values.

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

12 years agos390x: Make the CC_DEP1 field appear completely initialised when
Florian Krohm [Fri, 31 May 2013 15:41:55 +0000 (15:41 +0000)] 
s390x: Make the CC_DEP1 field appear completely initialised when
writing a 32-bit floating point value into it.
Patch by Maran Pakkirisamy (maranp@linux.vnet.ibm.com).
Part of fixing BZ 307113.

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

12 years agomips32/mips64: implement sdl, sdr, swl and swr without reading memory
Petar Jovanovic [Fri, 31 May 2013 15:09:56 +0000 (15:09 +0000)] 
mips32/mips64: implement sdl, sdr, swl and swr without reading memory

New implementation of SDL, SDW, SWL and SWR instructions in a way in which
no memory read is required. This came as an issue for programs that map
memory as write-exec only.

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

12 years agoImplement STRT. Fixes #319395. (Vasily Golubev, w.golubev@mail.ru)
Julian Seward [Mon, 13 May 2013 10:28:59 +0000 (10:28 +0000)] 
Implement STRT.  Fixes #319395.  (Vasily Golubev, w.golubev@mail.ru)

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

12 years agoImplement SSAT16. Fixes #318929. (Vasily Golubev, w.golubev@mail.ru)
Julian Seward [Mon, 13 May 2013 10:02:33 +0000 (10:02 +0000)] 
Implement SSAT16.  Fixes #318929.  (Vasily Golubev, w.golubev@mail.ru)

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

12 years agoFix s390 build failure.
Florian Krohm [Sun, 12 May 2013 13:57:13 +0000 (13:57 +0000)] 
Fix s390 build failure.
Patch by Maran Pakkirisamy (maranp@linux.vnet.ibm.com).

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

12 years agos390: First round of changes to support the PFPO insn.
Florian Krohm [Sat, 11 May 2013 15:02:58 +0000 (15:02 +0000)] 
s390: First round of changes to support the PFPO insn.
Support these IROps:
Iop_F64toD64, Iop_D64toF64
Iop_F64toD128, Iop_D128toF64,
Iop_F128toD128, Iop_D128toF128,

Patch by Maran Pakkirisamy (maranp@linux.vnet.ibm.com).
Part of fixing BZ #307113

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

12 years agoGet rid of gcc warning on non-MIPS platforms.
Julian Seward [Wed, 8 May 2013 08:56:45 +0000 (08:56 +0000)] 
Get rid of gcc warning on non-MIPS platforms.

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