]>
git.ipfire.org Git - thirdparty/valgrind.git/log
Julian Seward [Mon, 14 Feb 2011 13:39:47 +0000 (13:39 +0000)]
Merge from trunk, r2080 (Handle PCMPxSTRx $0x00.)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_6_BRANCH@2096
Julian Seward [Mon, 14 Feb 2011 13:37:03 +0000 (13:37 +0000)]
Merge from trunk, r2079 (Tolerate redundant REX.W in POPQ m64.)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_6_BRANCH@2095
Julian Seward [Mon, 14 Feb 2011 13:33:36 +0000 (13:33 +0000)]
Merge from trunk, r2078 (Add support for AAD and AAM (base 10 only).)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_6_BRANCH@2094
Julian Seward [Mon, 14 Feb 2011 13:30:26 +0000 (13:30 +0000)]
Merge from trunk, r2076 (Implement SSE4.x EXTRACTPS, BLENDVPD,
BLENDVPS, PBLENDVB.)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_6_BRANCH@2093
Julian Seward [Mon, 14 Feb 2011 13:26:56 +0000 (13:26 +0000)]
Merge from trunk, r2075 (Implement SSE4.1 PBLENDW.)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_6_BRANCH@2092
Julian Seward [Mon, 14 Feb 2011 13:23:21 +0000 (13:23 +0000)]
Merge from trunk, r2074 (Handle non-immediate-rounding-mode versions
of ROUND{P,S}{S,D}.)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_6_BRANCH@2091
Julian Seward [Mon, 14 Feb 2011 13:19:51 +0000 (13:19 +0000)]
Merge from trunk, r2072 (Implement ROUNDPD and ROUNDPS (imm rounding
mode only).)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_6_BRANCH@2090
Julian Seward [Mon, 14 Feb 2011 13:10:35 +0000 (13:10 +0000)]
Merge from trunk, r2073 (Fix bug in ppc64g_dirtyhelper_LVS)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_6_BRANCH@2089
Julian Seward [Wed, 20 Oct 2010 21:38:42 +0000 (21:38 +0000)]
Merge from trunk, r2067 (Add support for SMSAD{X}, SMLSD{X}, USAD{A}8.)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_6_BRANCH@2068
Julian Seward [Fri, 15 Oct 2010 08:48:02 +0000 (08:48 +0000)]
Create VEX_3_6_BRANCH as a copy of trunk r2065.
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_6_BRANCH@2066
Julian Seward [Tue, 12 Oct 2010 10:10:46 +0000 (10:10 +0000)]
Update copyright notices.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2065
Julian Seward [Mon, 11 Oct 2010 18:57:10 +0000 (18:57 +0000)]
Handle NOP.W (Thumb) and NOP (ARM). Partial fix for #253636.
Add a comment re conditionalisation of Thumb memory barrier insns.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2064
Julian Seward [Mon, 11 Oct 2010 18:03:13 +0000 (18:03 +0000)]
Fix bogus register constraints for ARM mode LDREX and STREX.
Derived from a patch by Rodrigo Belem <rodrigo.belem@openbossa.org>
Partially fixes #253636.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2063
Julian Seward [Wed, 6 Oct 2010 20:47:22 +0000 (20:47 +0000)]
NEON front end: fix bugs in VMIN, VZIP, VRSHL.
(Dmitry Zhurikhin, zhur@ispras.ru), no bug number.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2062
Julian Seward [Wed, 6 Oct 2010 20:34:53 +0000 (20:34 +0000)]
Fix some enum type confusion in host_arm_defs.[ch].
(Dmitry Zhurikhin, zhur@ispras.ru), no bug number.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2061
Julian Seward [Tue, 5 Oct 2010 22:29:49 +0000 (22:29 +0000)]
Thumb instructions: instead of generating tons of lardy boilerplate IR
to compute the guarding condition for instructions, and then leaning
heavily on ir_opt to almost always fold it out, avoid generating it in
the first place if it's not necessary, as per the ITxxx optimisation
analysis. This reduces startup time of Thumb applications by 0%-30%
by reducing the amount of time the JIT has to spend translating. No
effect on ARM instructions since those don't require a complex IR
preamble to establish the gating condition.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2060
Julian Seward [Mon, 4 Oct 2010 09:34:46 +0000 (09:34 +0000)]
Give all the ARM code generation enums non-overlapping value ranges, so
as to get better diagnostic information about type errors from gcc-4.5.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2059
Julian Seward [Fri, 1 Oct 2010 14:06:22 +0000 (14:06 +0000)]
Improve constant folding of expressions of the form 'op(t,t)'
where t is an IRTemp. This superficially fixes #213865, although
it doesn't actually fix all the Intel-prescribed dependency-breaking
cases tterrib listed there. The newly-handled cases here are:
OrV128(t,t) ==> t
Sub64(t,t) ==> 0
CmpEQ64(t,t), CmpEQ8x8(t,t), CmpEQ8x16(t,t) ==> all-1s
git-svn-id: svn://svn.valgrind.org/vex/trunk@2058
Julian Seward [Thu, 30 Sep 2010 14:51:51 +0000 (14:51 +0000)]
Add alignment checks to MOVDQA and a bunch of other SSE insns which
require them but for which they were missing. Fixes #153699.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2057
Julian Seward [Thu, 30 Sep 2010 13:37:31 +0000 (13:37 +0000)]
Handle the undocumented but apparently-actually-used instruction
MOVSWW [tentative fix]. Fixes #250799.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2056
Julian Seward [Thu, 30 Sep 2010 10:51:56 +0000 (10:51 +0000)]
amd64 CPUID: don't claim that the guest supports AES insns,
since it doesn't. Fixes #249991.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2055
Julian Seward [Wed, 29 Sep 2010 21:39:48 +0000 (21:39 +0000)]
Comment-only change.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2054
Julian Seward [Wed, 29 Sep 2010 21:39:12 +0000 (21:39 +0000)]
Increase the size of the JIT's scratch working area from 4MB to 5MB.
This is needed to handle long blocks of NEON code with Memcheck
--track-origins=yes.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2053
Julian Seward [Wed, 29 Sep 2010 21:36:56 +0000 (21:36 +0000)]
On ARM, request precise exceptions for R7. This is needed to
get sane stack traces in Thumb code.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2052
Julian Seward [Tue, 28 Sep 2010 19:56:32 +0000 (19:56 +0000)]
Support PCLMULDQ (Emmanuel Thomé, Emmanuel.Thome@gmail.com).
Fixes #251251.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2051
Julian Seward [Tue, 28 Sep 2010 15:59:04 +0000 (15:59 +0000)]
Track (but ignore) the state of %RFLAGS.ACFLAG, since that is
necessary for proper CPUID checking. (pepp, pelloux+kde@gmail.com)
Fixes #249943.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2050
Julian Seward [Tue, 28 Sep 2010 15:20:47 +0000 (15:20 +0000)]
Handle Ity_I128 in sizeofIRType. (Florian Krohm, britzel@acm.org).
Fixes #247875.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2049
Julian Seward [Tue, 28 Sep 2010 14:57:03 +0000 (14:57 +0000)]
Support CMPXCHG reg, reg on amd64. (Vince Weaver, vince@csl.cornell.edu).
Fixes #246311.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2048
Julian Seward [Tue, 28 Sep 2010 14:38:39 +0000 (14:38 +0000)]
Handle ADC Iv, eAX and SBB Iv, eAX (Jakub Jelinek, jakub@redhat.com)
Fixes #211410.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2047
Julian Seward [Sun, 26 Sep 2010 00:48:41 +0000 (00:48 +0000)]
Support REV and REV16 in Thumb mode, both short and long encodings.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2046
Julian Seward [Sat, 25 Sep 2010 22:06:12 +0000 (22:06 +0000)]
Implement (Thumb) ORN (immediate) and ORN (register). Fixes #252326.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2045
Julian Seward [Fri, 24 Sep 2010 23:48:29 +0000 (23:48 +0000)]
Implement v7 barrier insns (DMB, DSB, ISB) in Thumb mode
(Peter Maydell, peter.maydell@linaro.org). Fixes #252253.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2044
Julian Seward [Fri, 24 Sep 2010 23:35:59 +0000 (23:35 +0000)]
Implement LDREX and STREX in Thumb mode. Fixes #252258.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2043
Julian Seward [Fri, 24 Sep 2010 21:59:55 +0000 (21:59 +0000)]
Implement RBIT in ARM mode.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2042
Julian Seward [Thu, 23 Sep 2010 11:01:15 +0000 (11:01 +0000)]
LibVEX_GuestARM_get_cpsr: set CPSR.Q, .GE, .T and .M
in the resulting value. Fixes #251362.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2041
Julian Seward [Wed, 22 Sep 2010 22:26:40 +0000 (22:26 +0000)]
Implement (ARM): REV, REV16, SMMUL.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2040
Julian Seward [Wed, 22 Sep 2010 16:27:08 +0000 (16:27 +0000)]
Fix incorrect handling of VTRN.32 insn. (Dmitry Zhurikhin, zhur@ispras.ru)
git-svn-id: svn://svn.valgrind.org/vex/trunk@2039
Julian Seward [Wed, 22 Sep 2010 16:15:50 +0000 (16:15 +0000)]
Accept d16-d31 register arguments in VFP code. Fixes #244493.
(Dmitry Zhurikhin, zhur@ispras.ru)
git-svn-id: svn://svn.valgrind.org/vex/trunk@2038
Julian Seward [Wed, 22 Sep 2010 00:56:37 +0000 (00:56 +0000)]
Add some 32-bit SIMD integer primops, and use these to shorten up the
implementation of some ARM media v6 instructions.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2037
Julian Seward [Tue, 21 Sep 2010 00:24:11 +0000 (00:24 +0000)]
Implement UHADD8.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2036
Julian Seward [Mon, 20 Sep 2010 23:58:57 +0000 (23:58 +0000)]
Implement SSUB8.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2035
Julian Seward [Mon, 20 Sep 2010 23:34:43 +0000 (23:34 +0000)]
In ARM mode: enable LDRD/STRD of the form "reg, [reg], reg"
git-svn-id: svn://svn.valgrind.org/vex/trunk@2034
Julian Seward [Mon, 20 Sep 2010 22:35:35 +0000 (22:35 +0000)]
Implement SADD16, SSUB16, SASX, SMLAWB, SMLAWT.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2033
Julian Seward [Thu, 9 Sep 2010 07:27:24 +0000 (07:27 +0000)]
If the host does not support Neon, then don't accept Neon instructions
on the guest-side. Related to #249775.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2032
Julian Seward [Thu, 9 Sep 2010 07:14:31 +0000 (07:14 +0000)]
Handle 16Uto64, which can now show up at the back end as a
result of more iropt folding introduced in r2030.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2031
Julian Seward [Wed, 8 Sep 2010 08:34:52 +0000 (08:34 +0000)]
Minor amd64 instruction selection improvements, leading to a
1% generated code size reduction for perf/bz2.c running on
Memcheck:
- reduce the amount of pointless cast-of-a-cast code by
rewriting it out at tree-creation time in ir_opt.c
- generate movslq for 32Sto64
- generate movzbq for 8Uto64(LD(...)), ditto movzwq for 16-bit loads
git-svn-id: svn://svn.valgrind.org/vex/trunk@2030
Julian Seward [Fri, 3 Sep 2010 23:37:02 +0000 (23:37 +0000)]
Support new PowerISA_2.05 instructions available on Power6 CPUs.
(Maynard Johnson, maynardj@us.ibm.com)
git-svn-id: svn://svn.valgrind.org/vex/trunk@2029
Julian Seward [Fri, 3 Sep 2010 15:49:57 +0000 (15:49 +0000)]
Support the DCBZL instruction. Also, query the host CPU at startup
time to find out how much space DCBZL really clears, and make the
guest CPU act accordingly. (VEX-side changes)
(Dave Goodell, goodell@mcs.anl.gov)
git-svn-id: svn://svn.valgrind.org/vex/trunk@2028
Julian Seward [Thu, 2 Sep 2010 21:14:10 +0000 (21:14 +0000)]
Enable BX PC in Thumb mode. Partial fix for #249775.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2027
Julian Seward [Thu, 2 Sep 2010 21:02:47 +0000 (21:02 +0000)]
Handle RBIT (bit-reverse) in Thumb mode. Partial fix for #249924.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2026
Julian Seward [Wed, 1 Sep 2010 10:25:51 +0000 (10:25 +0000)]
Avoid genSpill/genReload asserts for VFP spills/reloads with offsets
greater than 1024 from the baseblock pointer.
Also, update comments on the use of r12.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2025
Julian Seward [Tue, 31 Aug 2010 09:32:40 +0000 (09:32 +0000)]
Reduce to 5 the number of available Q (128-bit) registers available
to the allocator, in an attempt to make register allocation a bit
faster on ARM.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2024
Julian Seward [Tue, 31 Aug 2010 09:31:06 +0000 (09:31 +0000)]
Support the PLI instruction (icache preload hint) in ARM mode, so
as to make self-hosting on ARM work.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2023
Julian Seward [Tue, 31 Aug 2010 09:29:51 +0000 (09:29 +0000)]
Fix debug printing for Neon VLDn/VSTn instructions.
(Kirill Batuzov <batuzovk@ispras.ru)
git-svn-id: svn://svn.valgrind.org/vex/trunk@2022
Julian Seward [Tue, 31 Aug 2010 09:18:22 +0000 (09:18 +0000)]
Fix generation of writeback values in Neon VLDn/VSTn instructions.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2021
Julian Seward [Sun, 29 Aug 2010 12:33:02 +0000 (12:33 +0000)]
Add support for v6 media instructions in both ARM and Thumb modes.
(Donna Robinson, donna@valgrind.org)
git-svn-id: svn://svn.valgrind.org/vex/trunk@2020
Julian Seward [Sun, 22 Aug 2010 22:21:19 +0000 (22:21 +0000)]
Handle "Special" instructions in Thumb mode: "R3 = guest_NRADDR" and
"branch-and-link-to-noredir R4". This makes function wrapping work in
Thumb mode.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2019
Julian Seward [Sun, 22 Aug 2010 18:47:30 +0000 (18:47 +0000)]
Fix some compiler complaints when building on 64-bit platforms.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2018
Julian Seward [Sun, 22 Aug 2010 18:24:51 +0000 (18:24 +0000)]
Fix various compiler warnings and remove an unused function.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2017
Julian Seward [Sun, 22 Aug 2010 12:59:02 +0000 (12:59 +0000)]
Merge from branches/THUMB: new IR primops and associated
infrastructure, needed to represent NEON instructions. Way more new
ones than I would like, but I can't see a way to avoid having them.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2016
Julian Seward [Sun, 22 Aug 2010 12:54:56 +0000 (12:54 +0000)]
Merge from branches/THUMB: hwcaps for ARM. May get simplified since
in fact ARM v5 and v6 are not supported targets -- ARMv7 remains the
minimum supported target.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2015
Julian Seward [Sun, 22 Aug 2010 12:48:28 +0000 (12:48 +0000)]
Merge from branches/THUMB: back end changes to support NEON code generation.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2014
Julian Seward [Sun, 22 Aug 2010 12:44:20 +0000 (12:44 +0000)]
Merge from branches/THUMB: front end changes to support:
* Thumb integer instructions
* NEON in both ARM and Thumb mode
* VFP in both ARM and Thumb mode
* infrastructure to support APSR.Q flag representation
git-svn-id: svn://svn.valgrind.org/vex/trunk@2013
Julian Seward [Sun, 22 Aug 2010 12:38:53 +0000 (12:38 +0000)]
Merge from branches/THUMB: A spechelper interface change that allows
the helper to look back at the previous IR statements. May be backed
out if it turns out no longer to be needed for optimising Thumb
translations.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2012
Julian Seward [Thu, 19 Aug 2010 13:25:10 +0000 (13:25 +0000)]
Enable SSE 4.1 and 4.2 by default on x86_64. (x86 remains stuck
at SSE3, at least for the time being.)
git-svn-id: svn://svn.valgrind.org/vex/trunk@2011
Julian Seward [Tue, 17 Aug 2010 22:52:08 +0000 (22:52 +0000)]
Add a moderately comprehensive implementation of the SSE4.2 string
instructions PCMP{I,E}STR{I,M}. They are an absolute nightmare of
complexity. Most of the 8-bit data processing variants are supported,
but none of the 16-bit variants.
Also add support for PINSRB and PTEST.
With these changes, I believe Valgrind supports all the SSE4.2
instructions used in glibc-2.11 on x86_64-linux, as well as anything
that gcc can emit. So that gives fairly good coverage.
Currently these instructions are handled, but CPUID still claims to be
an older, non-SSE4 capable Core 2, so that software that correctly
checks CPU features should not use them. Following further testing I
will enable the relevant SSE4.2 bits in CPUID.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2010
Julian Seward [Fri, 6 Aug 2010 07:59:38 +0000 (07:59 +0000)]
Add partial support for the SSE 4.2 PCMPISTRI instruction, at least
for (some of) the sub-cases that glibc uses (64-bit mode only). Also,
prepare for transitioning CPUID in 64-bit mode to indicate SSE4.2
support (not yet enabled).
Be warned, this commit will require a from-clean rebuild of Valgrind.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2001
Julian Seward [Fri, 6 Aug 2010 07:55:29 +0000 (07:55 +0000)]
Update for Core iX.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2000
Julian Seward [Thu, 29 Jul 2010 18:10:51 +0000 (18:10 +0000)]
Don't trash the ELF ABI redzone for amd64 when emulating BT{,S,R,C}
reg,reg. Fixes (well, at least, makes an appalling kludge a bit less
appalling) #245925.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1997
Julian Seward [Thu, 29 Jul 2010 16:12:41 +0000 (16:12 +0000)]
Add a folding rule for 32Sto64.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1996
Julian Seward [Thu, 29 Jul 2010 15:39:05 +0000 (15:39 +0000)]
Only decode LZCNT if the host supports it, since otherwise we risk
confusing it with BSR. Followup to #212335.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1995
Julian Seward [Thu, 29 Jul 2010 11:34:38 +0000 (11:34 +0000)]
Support the amd SSE4.something LZCNT instruction. Fixes #212335
and its various clones, at least #227551, #241290 and #240639.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1994
Julian Seward [Thu, 29 Jul 2010 07:19:30 +0000 (07:19 +0000)]
Handle mov[ua[pd G(xmm) -> E(xmm) case, which is something binutils
doesn't produce, presumably because it uses the E->G encoding for xmm
reg-reg moves. Fixes #238713. (Pierre Willenbrock,
pierre@pirsoft.de).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1993
Julian Seward [Thu, 29 Jul 2010 07:01:29 +0000 (07:01 +0000)]
x86/amd64 FXTRACT: mimic the Core i5 behaviour when the argument is a
negative NaN.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1992
Julian Seward [Thu, 29 Jul 2010 05:13:58 +0000 (05:13 +0000)]
Ignore a redundant REX.W prefix on an MMX pinsrw instruction
(Dan Gohman, dgohman@gmail.com). Fixes #239992.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1991
Julian Seward [Wed, 28 Jul 2010 19:26:59 +0000 (19:26 +0000)]
Add a program for printing out cpuid info.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1990
Julian Seward [Fri, 23 Jul 2010 21:23:25 +0000 (21:23 +0000)]
Support the SSE4 insn 'roundss' in 32-bit mode. Lack of this was
causing problems for people running 32-bit apps on MacOSX 10.6 on
newer hardware. Fixes #241377.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1987
Julian Seward [Sun, 27 Jun 2010 09:06:34 +0000 (09:06 +0000)]
Implement ROUNDSS (partial implementation, in the case where
the rounding mode is specified within the instruction itself).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1986
Julian Seward [Fri, 25 Jun 2010 10:25:54 +0000 (10:25 +0000)]
Implement ROUNDSD (partial implementation, in the case where
the rounding mode is specified within the instruction itself).
Fixes #197266.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1985
Julian Seward [Fri, 18 Jun 2010 08:17:41 +0000 (08:17 +0000)]
Implement SSE4 instructions: PCMPGTQ PMAXUD PMINUD PMAXSB PMINSB PMULLD
I believe this covers everything that gcc-4.4 and gcc-4.5 will generate
with "-O3 -msse4.2". Note, this commit changes the set of IR ops and so
requires a from-scratch rebuild of the tree.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1984
Julian Seward [Mon, 14 Jun 2010 21:29:35 +0000 (21:29 +0000)]
Implement more SSE4 instructions:
PINSRD PMINUD POPCNTW POPCNTL POPCNTQ
git-svn-id: svn://svn.valgrind.org/vex/trunk@1983
Julian Seward [Mon, 7 Jun 2010 16:22:22 +0000 (16:22 +0000)]
Implement SIDT and SGDT as pass-throughs to the host. It's a pretty
bad thing to do, but I can't think of a way to virtualise these
properly. Patch from Alexander Potapenko. See
https://bugs.kde.org/show_bug.cgi?id=205241#c38
git-svn-id: svn://svn.valgrind.org/vex/trunk@1982
Julian Seward [Mon, 10 May 2010 20:51:22 +0000 (20:51 +0000)]
Implement XADD reg,reg (Nicolas Sauzede, nicolas.sauzede@st.com).
Fixes #195662.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1981
Julian Seward [Mon, 10 May 2010 20:08:12 +0000 (20:08 +0000)]
Enable FISTS. Fixes #234037. (Bradley Baetz, bbaetz@gmail.com)
git-svn-id: svn://svn.valgrind.org/vex/trunk@1980
Julian Seward [Tue, 4 May 2010 08:48:43 +0000 (08:48 +0000)]
Handle v7 memory fence instructions: ISB DSB DMB and their v6 equivalents:
mcr 15,0,r0,c7,c5,4 mcr 15,0,r0,c7,c10,4 mcr 15,0,r0,c7,c10,5
respectively. Re-emit them in the v6 form so as not to inhibit possible
support for v6-only platforms in the future. Extended version of a patch
from Alexander Potapenko (glider@google.com). Fixes bug 228060.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1979
Julian Seward [Mon, 3 May 2010 21:58:22 +0000 (21:58 +0000)]
Handle more x86 NOP forms, as required by Fedora 13. Fixes bug
233576. Jakub Jelinek <jakub@redhat.com>.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1978
Julian Seward [Mon, 3 May 2010 21:38:49 +0000 (21:38 +0000)]
Update copyright dates to 2010 and change license to standard GPL2+.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1977
Julian Seward [Thu, 29 Apr 2010 08:52:00 +0000 (08:52 +0000)]
(re-commit r1976):
Added new SSE4.1 instruction:
PMAXUD
git-svn-id: svn://svn.valgrind.org/vex/trunk@1976
Julian Seward [Thu, 29 Apr 2010 08:50:09 +0000 (08:50 +0000)]
(re-commit r1975):
Added new SSE4.1 instruction:
PINSRQ
git-svn-id: svn://svn.valgrind.org/vex/trunk@1975
Julian Seward [Thu, 29 Apr 2010 08:48:09 +0000 (08:48 +0000)]
(re-commit r1974):
Fix up printing for some of the SSE4.1 insns.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1974
Julian Seward [Thu, 29 Apr 2010 08:46:38 +0000 (08:46 +0000)]
(re-commit r1973):
Added new SSE4.1 instructions:
PEXTRW, PEXTRQ, PEXTRD, PEXTRB
git-svn-id: svn://svn.valgrind.org/vex/trunk@1973
Julian Seward [Thu, 29 Apr 2010 08:44:13 +0000 (08:44 +0000)]
(re-commit r1972):
Fixed copy+paste error in R1971
git-svn-id: svn://svn.valgrind.org/vex/trunk@1972
Julian Seward [Thu, 29 Apr 2010 08:42:37 +0000 (08:42 +0000)]
(re-commit r1971)
Added new SSE4 instructions PMINSD, PMAXSD.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1971
Julian Seward [Thu, 29 Apr 2010 08:39:18 +0000 (08:39 +0000)]
(re-commit r1970):
Tested BLENDPS
Added new SSE4 instructions DPPD and DPPS
git-svn-id: svn://svn.valgrind.org/vex/trunk@1970
Donna Robinson [Fri, 2 Apr 2010 14:15:58 +0000 (14:15 +0000)]
iselVecExpr_wrk: 128-bit constants: handle all 16 cases
of the form 0x0000 .. 0xFFFF.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1969
Donna Robinson [Fri, 2 Apr 2010 13:17:50 +0000 (13:17 +0000)]
Added new SSE4 instruction BLENDPS (backend needs a fix before testing)
Tested PMOVSXBW
Tested INSERTPS
Tested BLENDPD and fixed typo
git-svn-id: svn://svn.valgrind.org/vex/trunk@1968
Julian Seward [Fri, 2 Apr 2010 11:31:22 +0000 (11:31 +0000)]
Enable PMOVSXBW and fix lane shift widths.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1967
Julian Seward [Fri, 2 Apr 2010 11:29:23 +0000 (11:29 +0000)]
Handle a few more cases in 128-bit constant generation, needed by
front end changes in r1965.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1966
Donna Robinson [Thu, 1 Apr 2010 23:08:59 +0000 (23:08 +0000)]
Added new SSE4 instructions:
BLENDPD, INSERTPS (closes Bug #232069), PMOVSX, PMOVZX.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1965
Julian Seward [Mon, 8 Mar 2010 14:49:03 +0000 (14:49 +0000)]
Support FTOUIS, UXTAB, SXTAH.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1964