You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
1
(17) |
2
(10) |
3
(5) |
|
4
(12) |
5
(12) |
6
(15) |
7
(17) |
8
(13) |
9
(18) |
10
(10) |
|
11
|
12
(2) |
13
(20) |
14
(16) |
15
(17) |
16
(19) |
17
(17) |
|
18
(14) |
19
(12) |
20
|
21
(5) |
22
(12) |
23
(10) |
24
(1) |
|
25
|
26
(2) |
27
|
28
(2) |
29
|
30
(1) |
31
(2) |
|
From: <sv...@va...> - 2014-05-21 20:23:50
|
Author: sewardj
Date: Wed May 21 20:23:43 2014
New Revision: 13989
Log:
Update.
Modified:
trunk/NEWS
trunk/docs/internals/3_9_BUGSTATUS.txt
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Wed May 21 20:23:43 2014
@@ -80,6 +80,7 @@
326436 DRD: False positive in libstdc++ std::list::push_back
326444 Cavium MIPS Octeon Specific Load Indexed Instructions
326462 Refactor vgdb to isolate invoker stuff into separate module
+326469 amd64->IR: 0x66 0xF 0x3A 0x63 0xC1 0xE (pcmpistri 0x0E)
326623 DRD: false positive conflict report in a field assignment
326816 Intercept for __strncpy_sse2_unaligned missing?
326921 coregrind fails to compile m_trampoline.S with MIPS/Linux port of V
@@ -87,12 +88,14 @@
327212 Do not prepend the current directory to absolute path names.
327238 Callgrind Assertion 'passed <= last_bb->cjmp_count' failed
327284 s390x: Fix translation of the risbg instruction
+327639 vex amd64->IR pcmpestri SSE4.2 instruction is unsupported 0x34
327837 dwz compressed alternate .debug_info and .debug_str not read correctly
327916 DW_TAG_typedef may have no name
328100 XABORT not implemented
328205 Implement additional Xen hypercalls
328455 s390x: SIGILL after emitting wrong register pair for ldxbr
328711 valgrind.1 manpage "memcheck options" section is badly generated
+328878 vex amd64->IR pcmpestri SSE4.2 instruction is unsupported 0x14
329612 Incorrect handling of AT_BASE for image execution
329956 valgrind crashes when lmw/stmw instructions are used on ppc64
330228 mmap must align to VKI_SHMLBA on mips32
@@ -131,12 +134,13 @@
334705 sendmsg and recvmsg should guard against bogus msghdr fields.
334727 Build fails with -Werror=format-security
334788 clarify doc about --log-file initial program directory
+335155 vgdb, fix error print statement.
n-i-bz Fix KVM_CREATE_IRQCHIP ioctl handling
n-i-bz s390x: Fix memory corruption for multithreaded applications
n-i-bz vex arm->IR: allow PC as basereg in some LDRD cases
n-i-bz internal error in Valgrind if vgdb transmit signals when ptrace invoked
n-i-bz Fix mingw64 support in valgrind.h (dev@, 9 May 2014)
-335155 vgdb, fix error print statement.
+
Release 3.9.0 (31 October 2013)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Modified: trunk/docs/internals/3_9_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_9_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_9_BUGSTATUS.txt Wed May 21 20:23:43 2014
@@ -6,13 +6,10 @@
325328 __float128 loses precision under memcheck
== 197915
-326469 amd64->IR: 0x66 0xF 0x3A 0x63 0xC1 0xE (pcmpistri 0x0E)
326821 Double overflow/underflow handling broken (after exp())
327285 amd64->IR: 0x8F 0xEA 0xF8 0x10 0xCE 0x3 0x1D 0x0
== 323431 (probably amd specific, vpcmov)
-327639 vex amd64->IR pcmpestri SSE4.2 instruction is unsupported 0x34
-328878 vex amd64->IR pcmpestri SSE4.2 instruction is unsupported 0x14
-328357 amd64->IR: 0x8F 0xEA 0xF8 0x10 0xEF 0x3 0x5 0x0
+328357 amd64->IR: 0x8F 0xEA 0xF8 0x10 0xEF 0x3 0x5 0x0 (amd XOP pfx)
329245 amd64->IR: 0x48 0xF 0x5A 0x7 (rex.W cvtps2pd (%rdi),%xmm0)
330319 amd64->IR: 0xF 0x1 0xD5 0x31 0xC0 0xC3 0x48 0x8D (xend)
330590 Missing support for multiple VEX CMP instruction Opcodes (Causes SIGILL)
@@ -28,7 +25,7 @@
=== VEX/x86 ============================================================
-333625 Program under valgrind calculates complex exp() wrogly
+333625 Program under valgrind calculates complex exp() wrongly
=== VEX/mips ===========================================================
@@ -175,3 +172,8 @@
========================================================================
========================================================================
+335034 Unhandled ioctl: HCIGETDEVLIST
+334936 patch to fix false positives on alsa SNDRV_CTL_* ioctls
+333628 Out of tree build (is fixed, but needs to land)
+335143 Capabilities not supported
+197259 (wine) Unsupported arch_prtctl option
|
|
From: <sv...@va...> - 2014-05-21 19:34:06
|
Author: carll
Date: Wed May 21 19:33:57 2014
New Revision: 13988
Log:
Forgot to update NEWS file with bugzilla 335155 fix.
Modified:
trunk/NEWS
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Wed May 21 19:33:57 2014
@@ -136,6 +136,7 @@
n-i-bz vex arm->IR: allow PC as basereg in some LDRD cases
n-i-bz internal error in Valgrind if vgdb transmit signals when ptrace invoked
n-i-bz Fix mingw64 support in valgrind.h (dev@, 9 May 2014)
+335155 vgdb, fix error print statement.
Release 3.9.0 (31 October 2013)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
From: <sv...@va...> - 2014-05-21 19:07:10
|
Author: carll
Date: Wed May 21 19:06:59 2014
New Revision: 13987
Log:
vgdb, fix error print statement.
This patch fixes printing the first not delivered signal.
Signed-off-by: Carl Love <ca...@us...>
This bug was reported in bugzilla 335155.
Modified:
trunk/coregrind/vgdb-invoker-ptrace.c
Modified: trunk/coregrind/vgdb-invoker-ptrace.c
==============================================================================
--- trunk/coregrind/vgdb-invoker-ptrace.c (original)
+++ trunk/coregrind/vgdb-invoker-ptrace.c Wed May 21 19:06:59 2014
@@ -774,7 +774,7 @@
}
if (signal_queue)
ERROR (0, "One or more signals queued were not delivered. "
- "First signal: %d\n", signal_queue);
+ "First signal: %d\n", signal_queue[0].si_signo);
detach_from_all_threads(pid);
}
|
|
From: <sv...@va...> - 2014-05-21 14:43:22
|
Author: sewardj
Date: Wed May 21 14:43:11 2014
New Revision: 13986
Log:
Add test cases for PCMPxSTRx cases 0x0E, 0x34, 0x14, and reformat some
of the associated switch statements. Pertains to #326469, #327639,
#328878 respectively.
Modified:
trunk/none/tests/amd64/pcmpstr64.c
trunk/none/tests/amd64/pcmpstr64.stdout.exp
trunk/none/tests/amd64/pcmpstr64w.c
Modified: trunk/none/tests/amd64/pcmpstr64.c
==============================================================================
--- trunk/none/tests/amd64/pcmpstr64.c (original)
+++ trunk/none/tests/amd64/pcmpstr64.c Wed May 21 14:43:11 2014
@@ -203,10 +203,10 @@
even if they would probably work. Life is too short to have
unvalidated cases in the code base. */
switch (imm8) {
- case 0x00:
- case 0x02: case 0x08: case 0x0C: case 0x12: case 0x1A:
- case 0x38: case 0x3A: case 0x44: case 0x46: case 0x4A:
- case 0x30: case 0x40:
+ case 0x00: case 0x02: case 0x08: case 0x0A: case 0x0C: case 0x0E:
+ case 0x12: case 0x14: case 0x1A:
+ case 0x30: case 0x34: case 0x38: case 0x3A:
+ case 0x40: case 0x44: case 0x46: case 0x4A:
break;
default:
return False;
@@ -1546,6 +1546,258 @@
//////////////////////////////////////////////////////////
// //
+// ISTRI_0E //
+// //
+//////////////////////////////////////////////////////////
+
+__attribute__((noinline))
+UInt h_pcmpistri_0E ( V128* argL, V128* argR )
+{
+ V128 block[2];
+ memcpy(&block[0], argL, sizeof(V128));
+ memcpy(&block[1], argR, sizeof(V128));
+ ULong res = 0, flags = 0;
+ __asm__ __volatile__(
+ "movdqu 0(%2), %%xmm2" "\n\t"
+ "movdqu 16(%2), %%xmm11" "\n\t"
+ "pcmpistri $0x0E, %%xmm2, %%xmm11" "\n\t"
+ "pushfq" "\n\t"
+ "popq %%rdx" "\n\t"
+ "movq %%rcx, %0" "\n\t"
+ "movq %%rdx, %1" "\n\t"
+ : /*out*/ "=r"(res), "=r"(flags) : "r"/*in*/(&block[0])
+ : "rcx","rdx","xmm0","xmm2","xmm11","cc","memory"
+ );
+ return ((flags & 0x8D5) << 16) | (res & 0xFFFF);
+}
+
+UInt s_pcmpistri_0E ( V128* argLU, V128* argRU )
+{
+ V128 resV;
+ UInt resOSZACP, resECX;
+ Bool ok
+ = pcmpXstrX_WRK( &resV, &resOSZACP, argLU, argRU,
+ zmask_from_V128(argLU),
+ zmask_from_V128(argRU),
+ 0x0E, False/*!isSTRM*/
+ );
+ assert(ok);
+ resECX = resV.uInt[0];
+ return (resOSZACP << 16) | resECX;
+}
+
+void istri_0E ( void )
+{
+ char* wot = "0E";
+ UInt(*h)(V128*,V128*) = h_pcmpistri_0E;
+ UInt(*s)(V128*,V128*) = s_pcmpistri_0E;
+
+ try_istri(wot,h,s, "111111111abcde11", "00000000000abcde");
+
+ try_istri(wot,h,s, "111111111abcde11", "0000abcde00abcde");
+
+ try_istri(wot,h,s, "1111111111abcde1", "00000000000abcde");
+ try_istri(wot,h,s, "11111111111abcde", "00000000000abcde");
+ try_istri(wot,h,s, "111111111111abcd", "00000000000abcde");
+
+ try_istri(wot,h,s, "111abcde1abcde11", "00000000000abcde");
+
+ try_istri(wot,h,s, "11abcde11abcde11", "00000000000abcde");
+ try_istri(wot,h,s, "1abcde111abcde11", "00000000000abcde");
+ try_istri(wot,h,s, "abcde1111abcde11", "00000000000abcde");
+ try_istri(wot,h,s, "bcde11111abcde11", "00000000000abcde");
+ try_istri(wot,h,s, "cde111111abcde11", "00000000000abcde");
+
+ try_istri(wot,h,s, "01abcde11abcde11", "00000000000abcde");
+ try_istri(wot,h,s, "00abcde11abcde11", "00000000000abcde");
+ try_istri(wot,h,s, "000bcde11abcde11", "00000000000abcde");
+
+ try_istri(wot,h,s, "00abcde10abcde11", "00000000000abcde");
+ try_istri(wot,h,s, "00abcde100bcde11", "00000000000abcde");
+
+ try_istri(wot,h,s, "1111111111111234", "0000000000000000");
+ try_istri(wot,h,s, "1111111111111234", "0000000000000001");
+ try_istri(wot,h,s, "1111111111111234", "0000000000000011");
+
+ try_istri(wot,h,s, "1111111111111234", "1111111111111234");
+ try_istri(wot,h,s, "a111111111111111", "000000000000000a");
+ try_istri(wot,h,s, "b111111111111111", "000000000000000a");
+
+ try_istri(wot,h,s, "b111111111111111", "0000000000000000");
+ try_istri(wot,h,s, "0000000000000000", "0000000000000000");
+ try_istri(wot,h,s, "123456789abcdef1", "0000000000000000");
+ try_istri(wot,h,s, "0000000000000000", "123456789abcdef1");
+}
+
+
+//////////////////////////////////////////////////////////
+// //
+// ISTRI_34 //
+// //
+//////////////////////////////////////////////////////////
+
+UInt h_pcmpistri_34 ( V128* argL, V128* argR )
+{
+ V128 block[2];
+ memcpy(&block[0], argL, sizeof(V128));
+ memcpy(&block[1], argR, sizeof(V128));
+ ULong res, flags;
+ __asm__ __volatile__(
+ "subq $1024, %%rsp" "\n\t"
+ "movdqu 0(%2), %%xmm2" "\n\t"
+ "movdqu 16(%2), %%xmm11" "\n\t"
+ "pcmpistri $0x34, %%xmm2, %%xmm11" "\n\t"
+ "pushfq" "\n\t"
+ "popq %%rdx" "\n\t"
+ "movq %%rcx, %0" "\n\t"
+ "movq %%rdx, %1" "\n\t"
+ "addq $1024, %%rsp" "\n\t"
+ : /*out*/ "=r"(res), "=r"(flags) : "r"/*in*/(&block[0])
+ : "rcx","rdx","xmm0","xmm2","xmm11","cc","memory"
+ );
+ return ((flags & 0x8D5) << 16) | (res & 0xFFFF);
+}
+
+UInt s_pcmpistri_34 ( V128* argLU, V128* argRU )
+{
+ V128 resV;
+ UInt resOSZACP, resECX;
+ Bool ok
+ = pcmpXstrX_WRK( &resV, &resOSZACP, argLU, argRU,
+ zmask_from_V128(argLU),
+ zmask_from_V128(argRU),
+ 0x34, False/*!isSTRM*/
+ );
+ assert(ok);
+ resECX = resV.uInt[0];
+ return (resOSZACP << 16) | resECX;
+}
+
+void istri_34 ( void )
+{
+ char* wot = "34";
+ UInt(*h)(V128*,V128*) = h_pcmpistri_34;
+ UInt(*s)(V128*,V128*) = s_pcmpistri_34;
+
+ try_istri(wot,h,s, "aaaabbbbccccdddd", "00000000000000bc");
+ try_istri(wot,h,s, "aaaabbbbccccdddd", "00000000000000cb");
+ try_istri(wot,h,s, "baaabbbbccccdddd", "00000000000000cb");
+ try_istri(wot,h,s, "baaabbbbccccdddc", "00000000000000cb");
+
+ try_istri(wot,h,s, "bbbbbbbbbbbbbbbb", "00000000000000cb");
+ try_istri(wot,h,s, "bbbbbbbb0bbbbbbb", "00000000000000cb");
+ try_istri(wot,h,s, "bbbbbbbbbbbbbb0b", "00000000000000cb");
+ try_istri(wot,h,s, "bbbbbbbbbbbbbbb0", "00000000000000cb");
+ try_istri(wot,h,s, "0000000000000000", "00000000000000cb");
+
+ try_istri(wot,h,s, "0000000000000000", "0000000000000000");
+
+ try_istri(wot,h,s, "bbbbbbbbbbbbbbbb", "00000000000000cb");
+ try_istri(wot,h,s, "bbbbbbbbbbbbbbbb", "000000000000000b");
+ try_istri(wot,h,s, "b4b4b4b4b4b4b4b4", "00000000000062cb");
+
+ try_istri(wot,h,s, "b4b4b4b4b4b4b4b4", "00000000000002cb");
+ try_istri(wot,h,s, "b4b4b4b4b4b4b4b4", "00000000000000cb");
+ try_istri(wot,h,s, "b4b4b4b4b4b4b4b4", "000000000000000b");
+
+ try_istri(wot,h,s, "0123456789abcdef", "000000fecb975421");
+ try_istri(wot,h,s, "123456789abcdef1", "000000fecb975421");
+
+ try_istri(wot,h,s, "0123456789abcdef", "00000000dca86532");
+ try_istri(wot,h,s, "123456789abcdef1", "00000000dca86532");
+
+ try_istri(wot,h,s, "163887ec041a9b72", "fcd75adb9b3e895a");
+ try_istri(wot,h,s, "fc937cbfbf53f8e2", "0d136bcb024d3fb7");
+ try_istri(wot,h,s, "2ca34182c29a82ab", "302ebd646775ab54");
+ try_istri(wot,h,s, "3f2987608c11be6f", "a9ecb661f8e0a8cb");
+}
+
+
+//////////////////////////////////////////////////////////
+// //
+// ISTRI_14 //
+// //
+//////////////////////////////////////////////////////////
+
+UInt h_pcmpistri_14 ( V128* argL, V128* argR )
+{
+ V128 block[2];
+ memcpy(&block[0], argL, sizeof(V128));
+ memcpy(&block[1], argR, sizeof(V128));
+ ULong res, flags;
+ __asm__ __volatile__(
+ "subq $1024, %%rsp" "\n\t"
+ "movdqu 0(%2), %%xmm2" "\n\t"
+ "movdqu 16(%2), %%xmm11" "\n\t"
+ "pcmpistri $0x14, %%xmm2, %%xmm11" "\n\t"
+ "pushfq" "\n\t"
+ "popq %%rdx" "\n\t"
+ "movq %%rcx, %0" "\n\t"
+ "movq %%rdx, %1" "\n\t"
+ "addq $1024, %%rsp" "\n\t"
+ : /*out*/ "=r"(res), "=r"(flags) : "r"/*in*/(&block[0])
+ : "rcx","rdx","xmm0","xmm2","xmm11","cc","memory"
+ );
+ return ((flags & 0x8D5) << 16) | (res & 0xFFFF);
+}
+
+UInt s_pcmpistri_14 ( V128* argLU, V128* argRU )
+{
+ V128 resV;
+ UInt resOSZACP, resECX;
+ Bool ok
+ = pcmpXstrX_WRK( &resV, &resOSZACP, argLU, argRU,
+ zmask_from_V128(argLU),
+ zmask_from_V128(argRU),
+ 0x14, False/*!isSTRM*/
+ );
+ assert(ok);
+ resECX = resV.uInt[0];
+ return (resOSZACP << 16) | resECX;
+}
+
+void istri_14 ( void )
+{
+ char* wot = "14";
+ UInt(*h)(V128*,V128*) = h_pcmpistri_14;
+ UInt(*s)(V128*,V128*) = s_pcmpistri_14;
+
+ try_istri(wot,h,s, "aaaabbbbccccdddd", "00000000000000bc");
+ try_istri(wot,h,s, "aaaabbbbccccdddd", "00000000000000cb");
+ try_istri(wot,h,s, "baaabbbbccccdddd", "00000000000000cb");
+ try_istri(wot,h,s, "baaabbbbccccdddc", "00000000000000cb");
+
+ try_istri(wot,h,s, "bbbbbbbbbbbbbbbb", "00000000000000cb");
+ try_istri(wot,h,s, "bbbbbbbb0bbbbbbb", "00000000000000cb");
+ try_istri(wot,h,s, "bbbbbbbbbbbbbb0b", "00000000000000cb");
+ try_istri(wot,h,s, "bbbbbbbbbbbbbbb0", "00000000000000cb");
+ try_istri(wot,h,s, "0000000000000000", "00000000000000cb");
+
+ try_istri(wot,h,s, "0000000000000000", "0000000000000000");
+
+ try_istri(wot,h,s, "bbbbbbbbbbbbbbbb", "00000000000000cb");
+ try_istri(wot,h,s, "bbbbbbbbbbbbbbbb", "000000000000000b");
+ try_istri(wot,h,s, "b4b4b4b4b4b4b4b4", "00000000000062cb");
+
+ try_istri(wot,h,s, "b4b4b4b4b4b4b4b4", "00000000000002cb");
+ try_istri(wot,h,s, "b4b4b4b4b4b4b4b4", "00000000000000cb");
+ try_istri(wot,h,s, "b4b4b4b4b4b4b4b4", "000000000000000b");
+
+ try_istri(wot,h,s, "0123456789abcdef", "000000fecb975421");
+ try_istri(wot,h,s, "123456789abcdef1", "000000fecb975421");
+
+ try_istri(wot,h,s, "0123456789abcdef", "00000000dca86532");
+ try_istri(wot,h,s, "123456789abcdef1", "00000000dca86532");
+
+ try_istri(wot,h,s, "163887ec041a9b72", "fcd75adb9b3e895a");
+ try_istri(wot,h,s, "fc937cbfbf53f8e2", "0d136bcb024d3fb7");
+ try_istri(wot,h,s, "2ca34182c29a82ab", "302ebd646775ab54");
+ try_istri(wot,h,s, "3f2987608c11be6f", "a9ecb661f8e0a8cb");
+}
+
+
+//////////////////////////////////////////////////////////
+// //
// main //
// //
//////////////////////////////////////////////////////////
@@ -1565,5 +1817,8 @@
istri_46();
istri_30();
istri_40();
+ istri_0E();
+ istri_14();
+ istri_34();
return 0;
}
Modified: trunk/none/tests/amd64/pcmpstr64.stdout.exp
==============================================================================
--- trunk/none/tests/amd64/pcmpstr64.stdout.exp (original)
+++ trunk/none/tests/amd64/pcmpstr64.stdout.exp Wed May 21 14:43:11 2014
@@ -332,3 +332,77 @@
istri 40 0000abcdabcdabcd 00000000000baba0 -> 00c00010 00c00010
istri 40 0ddc0ffeebadf00d 00000000cafebabe -> 00c00010 00c00010
istri 40 0ddc0ffeebadfeed 00000000cafebabe -> 00c1000a 00c1000a
+istri 0E 111111111abcde11 00000000000abcde -> 00810002 00810002
+istri 0E 111111111abcde11 0000abcde00abcde -> 00810002 00810002
+istri 0E 1111111111abcde1 00000000000abcde -> 00810001 00810001
+istri 0E 11111111111abcde 00000000000abcde -> 08810000 08810000
+istri 0E 111111111111abcd 00000000000abcde -> 00800010 00800010
+istri 0E 111abcde1abcde11 00000000000abcde -> 00810002 00810002
+istri 0E 11abcde11abcde11 00000000000abcde -> 00810002 00810002
+istri 0E 1abcde111abcde11 00000000000abcde -> 00810002 00810002
+istri 0E abcde1111abcde11 00000000000abcde -> 00810002 00810002
+istri 0E bcde11111abcde11 00000000000abcde -> 00810002 00810002
+istri 0E cde111111abcde11 00000000000abcde -> 00810002 00810002
+istri 0E 01abcde11abcde11 00000000000abcde -> 00c10002 00c10002
+istri 0E 00abcde11abcde11 00000000000abcde -> 00c10002 00c10002
+istri 0E 000bcde11abcde11 00000000000abcde -> 00c10002 00c10002
+istri 0E 00abcde10abcde11 00000000000abcde -> 00c10002 00c10002
+istri 0E 00abcde100bcde11 00000000000abcde -> 00c00010 00c00010
+istri 0E 1111111111111234 0000000000000000 -> 08810000 08810000
+istri 0E 1111111111111234 0000000000000001 -> 00810003 00810003
+istri 0E 1111111111111234 0000000000000011 -> 00810003 00810003
+istri 0E 1111111111111234 1111111111111234 -> 08010000 08010000
+istri 0E a111111111111111 000000000000000a -> 0081000f 0081000f
+istri 0E b111111111111111 000000000000000a -> 00800010 00800010
+istri 0E b111111111111111 0000000000000000 -> 08810000 08810000
+istri 0E 0000000000000000 0000000000000000 -> 08c10000 08c10000
+istri 0E 123456789abcdef1 0000000000000000 -> 08810000 08810000
+istri 0E 0000000000000000 123456789abcdef1 -> 00400010 00400010
+istri 14 aaaabbbbccccdddd 00000000000000bc -> 08810000 08810000
+istri 14 aaaabbbbccccdddd 00000000000000cb -> 08810000 08810000
+istri 14 baaabbbbccccdddd 00000000000000cb -> 08810000 08810000
+istri 14 baaabbbbccccdddc 00000000000000cb -> 00810001 00810001
+istri 14 bbbbbbbbbbbbbbbb 00000000000000cb -> 00800010 00800010
+istri 14 bbbbbbbb0bbbbbbb 00000000000000cb -> 00c10007 00c10007
+istri 14 bbbbbbbbbbbbbb0b 00000000000000cb -> 00c10001 00c10001
+istri 14 bbbbbbbbbbbbbbb0 00000000000000cb -> 08c10000 08c10000
+istri 14 0000000000000000 00000000000000cb -> 08c10000 08c10000
+istri 14 0000000000000000 0000000000000000 -> 08c10000 08c10000
+istri 14 bbbbbbbbbbbbbbbb 00000000000000cb -> 00800010 00800010
+istri 14 bbbbbbbbbbbbbbbb 000000000000000b -> 08810000 08810000
+istri 14 b4b4b4b4b4b4b4b4 00000000000062cb -> 00800010 00800010
+istri 14 b4b4b4b4b4b4b4b4 00000000000002cb -> 08810000 08810000
+istri 14 b4b4b4b4b4b4b4b4 00000000000000cb -> 08810000 08810000
+istri 14 b4b4b4b4b4b4b4b4 000000000000000b -> 08810000 08810000
+istri 14 0123456789abcdef 000000fecb975421 -> 00c10002 00c10002
+istri 14 123456789abcdef1 000000fecb975421 -> 00810003 00810003
+istri 14 0123456789abcdef 00000000dca86532 -> 08c10000 08c10000
+istri 14 123456789abcdef1 00000000dca86532 -> 08810000 08810000
+istri 14 163887ec041a9b72 fcd75adb9b3e895a -> 08410000 08410000
+istri 14 fc937cbfbf53f8e2 0d136bcb024d3fb7 -> 08810000 08810000
+istri 14 2ca34182c29a82ab 302ebd646775ab54 -> 08810000 08810000
+istri 14 3f2987608c11be6f a9ecb661f8e0a8cb -> 08c10000 08c10000
+istri 34 aaaabbbbccccdddd 00000000000000bc -> 08810000 08810000
+istri 34 aaaabbbbccccdddd 00000000000000cb -> 08810000 08810000
+istri 34 baaabbbbccccdddd 00000000000000cb -> 08810000 08810000
+istri 34 baaabbbbccccdddc 00000000000000cb -> 00810001 00810001
+istri 34 bbbbbbbbbbbbbbbb 00000000000000cb -> 00800010 00800010
+istri 34 bbbbbbbb0bbbbbbb 00000000000000cb -> 00c00010 00c00010
+istri 34 bbbbbbbbbbbbbb0b 00000000000000cb -> 00c00010 00c00010
+istri 34 bbbbbbbbbbbbbbb0 00000000000000cb -> 00c00010 00c00010
+istri 34 0000000000000000 00000000000000cb -> 00c00010 00c00010
+istri 34 0000000000000000 0000000000000000 -> 00c00010 00c00010
+istri 34 bbbbbbbbbbbbbbbb 00000000000000cb -> 00800010 00800010
+istri 34 bbbbbbbbbbbbbbbb 000000000000000b -> 08810000 08810000
+istri 34 b4b4b4b4b4b4b4b4 00000000000062cb -> 00800010 00800010
+istri 34 b4b4b4b4b4b4b4b4 00000000000002cb -> 08810000 08810000
+istri 34 b4b4b4b4b4b4b4b4 00000000000000cb -> 08810000 08810000
+istri 34 b4b4b4b4b4b4b4b4 000000000000000b -> 08810000 08810000
+istri 34 0123456789abcdef 000000fecb975421 -> 00c10002 00c10002
+istri 34 123456789abcdef1 000000fecb975421 -> 00810003 00810003
+istri 34 0123456789abcdef 00000000dca86532 -> 08c10000 08c10000
+istri 34 123456789abcdef1 00000000dca86532 -> 08810000 08810000
+istri 34 163887ec041a9b72 fcd75adb9b3e895a -> 08410000 08410000
+istri 34 fc937cbfbf53f8e2 0d136bcb024d3fb7 -> 08810000 08810000
+istri 34 2ca34182c29a82ab 302ebd646775ab54 -> 08810000 08810000
+istri 34 3f2987608c11be6f a9ecb661f8e0a8cb -> 08c10000 08c10000
Modified: trunk/none/tests/amd64/pcmpstr64w.c
==============================================================================
--- trunk/none/tests/amd64/pcmpstr64w.c (original)
+++ trunk/none/tests/amd64/pcmpstr64w.c Wed May 21 14:43:11 2014
@@ -208,9 +208,10 @@
even if they would probably work. Life is too short to have
unvalidated cases in the code base. */
switch (imm8) {
- case 0x01:
- case 0x03: case 0x09: case 0x0B: case 0x0D: case 0x13:
- case 0x1B: case 0x39: case 0x3B: case 0x45: case 0x4B:
+ case 0x01: case 0x03: case 0x09: case 0x0B: case 0x0D:
+ case 0x13: case 0x1B:
+ case 0x39: case 0x3B:
+ case 0x45: case 0x4B:
break;
default:
return False;
|
|
From: <sv...@va...> - 2014-05-21 14:42:14
|
Author: sewardj
Date: Wed May 21 14:42:04 2014
New Revision: 2864
Log:
Implement PCMPxSTRx cases 0x0E, 0x34, 0x14, and reformat some of the
associated switch statements. Fixes #326469, #327639, #328878
respectively.
Modified:
trunk/priv/guest_amd64_toIR.c
trunk/priv/guest_generic_x87.c
Modified: trunk/priv/guest_amd64_toIR.c
==============================================================================
--- trunk/priv/guest_amd64_toIR.c (original)
+++ trunk/priv/guest_amd64_toIR.c Wed May 21 14:42:04 2014
@@ -18199,14 +18199,16 @@
immediate byte. Is it one we can actually handle? Throw out any
cases for which the helper function has not been verified. */
switch (imm) {
- case 0x00:
- case 0x02: case 0x08: case 0x0A: case 0x0C: case 0x12:
- case 0x1A: case 0x38: case 0x3A: case 0x44: case 0x4A:
- case 0x46: case 0x30: case 0x40:
+ case 0x00: case 0x02: case 0x08: case 0x0A: case 0x0C: case 0x0E:
+ case 0x12: case 0x14: case 0x1A:
+ case 0x30: case 0x34: case 0x38: case 0x3A:
+ case 0x40: case 0x44: case 0x46: case 0x4A:
break;
- case 0x01: // the 16-bit character versions of the above
- case 0x03: case 0x09: case 0x0B: case 0x0D: case 0x13:
- case 0x1B: case 0x39: case 0x3B: case 0x45: case 0x4B:
+ // the 16-bit character versions of the above
+ case 0x01: case 0x03: case 0x09: case 0x0B: case 0x0D:
+ case 0x13: case 0x1B:
+ case 0x39: case 0x3B:
+ case 0x45: case 0x4B:
break;
default:
return delta0; /*FAIL*/
Modified: trunk/priv/guest_generic_x87.c
==============================================================================
--- trunk/priv/guest_generic_x87.c (original)
+++ trunk/priv/guest_generic_x87.c Wed May 21 14:42:04 2014
@@ -795,10 +795,10 @@
even if they would probably work. Life is too short to have
unvalidated cases in the code base. */
switch (imm8) {
- case 0x00:
- case 0x02: case 0x08: case 0x0A: case 0x0C: case 0x12:
- case 0x1A: case 0x38: case 0x3A: case 0x44: case 0x4A:
- case 0x46: case 0x30: case 0x40:
+ case 0x00: case 0x02: case 0x08: case 0x0A: case 0x0C: case 0x0E:
+ case 0x12: case 0x14: case 0x1A:
+ case 0x30: case 0x34: case 0x38: case 0x3A:
+ case 0x40: case 0x44: case 0x46: case 0x4A:
break;
default:
return False;
@@ -1046,9 +1046,10 @@
even if they would probably work. Life is too short to have
unvalidated cases in the code base. */
switch (imm8) {
- case 0x01:
- case 0x03: case 0x09: case 0x0B: case 0x0D: case 0x13:
- case 0x1B: case 0x39: case 0x3B: case 0x45: case 0x4B:
+ case 0x01: case 0x03: case 0x09: case 0x0B: case 0x0D:
+ case 0x13: case 0x1B:
+ case 0x39: case 0x3B:
+ case 0x45: case 0x4B:
break;
default:
return False;
|