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
(5) |
2
(1) |
3
(1) |
|
4
|
5
|
6
(2) |
7
(1) |
8
|
9
|
10
|
|
11
|
12
(5) |
13
(2) |
14
|
15
(2) |
16
(1) |
17
|
|
18
(1) |
19
(1) |
20
(2) |
21
|
22
(5) |
23
|
24
(1) |
|
25
|
26
|
27
(2) |
28
(3) |
|
|
|
|
From: Julian S. <se...@so...> - 2018-02-06 14:21:00
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=5e8c986b203aa99254342c182fd4cf6f1d8190f0 commit 5e8c986b203aa99254342c182fd4cf6f1d8190f0 Author: Julian Seward <js...@ac...> Date: Tue Feb 6 15:19:24 2018 +0100 amd64: implement PCMPxSTRx case 0x41. This is generated by recent MSVCs. n-i-bz. Diff: --- VEX/priv/guest_amd64_toIR.c | 2 +- VEX/priv/guest_generic_x87.c | 12 +++-- none/tests/amd64/pcmpstr64w.c | 92 ++++++++++++++++++++++++++++++++-- none/tests/amd64/pcmpstr64w.stdout.exp | 20 ++++++++ 4 files changed, 117 insertions(+), 9 deletions(-) diff --git a/VEX/priv/guest_amd64_toIR.c b/VEX/priv/guest_amd64_toIR.c index 9073e1d..d00f453 100644 --- a/VEX/priv/guest_amd64_toIR.c +++ b/VEX/priv/guest_amd64_toIR.c @@ -18811,7 +18811,7 @@ static Long dis_PCMPxSTRx ( const VexAbiInfo* vbi, Prefix pfx, case 0x13: case 0x19: case 0x1B: case 0x39: case 0x3B: - case 0x45: + case 0x41: case 0x45: case 0x4B: break; default: diff --git a/VEX/priv/guest_generic_x87.c b/VEX/priv/guest_generic_x87.c index d1979ef..28c58b9 100644 --- a/VEX/priv/guest_generic_x87.c +++ b/VEX/priv/guest_generic_x87.c @@ -1052,10 +1052,14 @@ Bool compute_PCMPxSTRx_wide ( /*OUT*/V128* resV, 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 0x19: case 0x1B: - case 0x39: case 0x3B: - case 0x45: case 0x4B: + // 1,9 3,B 5,D 7,F + case 0x01: case 0x03: + case 0x09: case 0x0B: case 0x0D: + case 0x13: + case 0x19: case 0x1B: + case 0x39: case 0x3B: + case 0x41: case 0x45: + case 0x4B: break; default: return False; diff --git a/none/tests/amd64/pcmpstr64w.c b/none/tests/amd64/pcmpstr64w.c index 6a1adad..f587813 100644 --- a/none/tests/amd64/pcmpstr64w.c +++ b/none/tests/amd64/pcmpstr64w.c @@ -208,10 +208,14 @@ Bool pcmpXstrX_WRK_wide ( /*OUT*/V128* resV, 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 0x19: case 0x1B: - case 0x39: case 0x3B: - case 0x45: case 0x4B: + // 1,9 3,B 5,D 7,F + case 0x01: case 0x03: + case 0x09: case 0x0B: case 0x0D: + case 0x13: + case 0x19: case 0x1B: + case 0x39: case 0x3B: + case 0x41: case 0x45: + case 0x4B: break; default: return False; @@ -1348,6 +1352,85 @@ void istri_19 ( void ) ////////////////////////////////////////////////////////// // // +// ISTRI_41 // +// // +////////////////////////////////////////////////////////// + +UInt h_pcmpistri_41 ( 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 $0x41, %%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_41 ( V128* argLU, V128* argRU ) +{ + V128 resV; + UInt resOSZACP, resECX; + Bool ok + = pcmpXstrX_WRK_wide( &resV, &resOSZACP, argLU, argRU, + zmask_from_V128(argLU), + zmask_from_V128(argRU), + 0x41, False/*!isSTRM*/ + ); + assert(ok); + resECX = resV.uInt[0]; + return (resOSZACP << 16) | resECX; +} + +void istri_41 ( void ) +{ + char* wot = "41"; + UInt(*h)(V128*,V128*) = h_pcmpistri_41; + UInt(*s)(V128*,V128*) = s_pcmpistri_41; + + try_istri(wot,h,s, "aaaabbbbccccdddd", "000000000000bbcc"); + try_istri(wot,h,s, "aaaabbbbccccdddd", "000000000000ccbb"); + try_istri(wot,h,s, "baaabbbbccccdddd", "000000000000ccbb"); + try_istri(wot,h,s, "baaabbbbccccdddc", "000000000000ccbb"); + + try_istri(wot,h,s, "bbbbbbbbbbbbbbbb", "000000000000ccbb"); + try_istri(wot,h,s, "bbbbbbbb00bbbbbb", "000000000000ccbb"); + try_istri(wot,h,s, "bbbbbbbbbbbb00bb", "000000000000ccbb"); + try_istri(wot,h,s, "bbbbbbbbbbbbbb00", "000000000000ccbb"); + try_istri(wot,h,s, "0000000000000000", "000000000000ccbb"); + + try_istri(wot,h,s, "0000000000000000", "0000000000000000"); + + try_istri(wot,h,s, "bbbbbbbbbbbbbbbb", "000000000000ccbb"); + try_istri(wot,h,s, "bbbbbbbbbbbbbbbb", "00000000000000bb"); + try_istri(wot,h,s, "bb44bb44bb44bb44", "000000006622ccbb"); + + try_istri(wot,h,s, "bb44bb44bb44bb44", "000000000022ccbb"); + try_istri(wot,h,s, "bb44bb44bb44bb44", "000000000000ccbb"); + try_istri(wot,h,s, "bb44bb44bb44bb44", "00000000000000bb"); + + try_istri(wot,h,s, "0011223344556677", "0000997755442211"); + try_istri(wot,h,s, "1122334455667711", "0000997755442211"); + + try_istri(wot,h,s, "0011223344556677", "0000aa8866553322"); + try_istri(wot,h,s, "1122334455667711", "0000aa8866553322"); +} + + + +////////////////////////////////////////////////////////// +// // // main // // // ////////////////////////////////////////////////////////// @@ -1365,5 +1448,6 @@ int main ( void ) istri_01(); istri_39(); istri_19(); + istri_41(); return 0; } diff --git a/none/tests/amd64/pcmpstr64w.stdout.exp b/none/tests/amd64/pcmpstr64w.stdout.exp index c18184c..c1b27bd 100644 --- a/none/tests/amd64/pcmpstr64w.stdout.exp +++ b/none/tests/amd64/pcmpstr64w.stdout.exp @@ -288,3 +288,23 @@ istri 19 8000000000000000 aaaaaaaa00aaaaaa -> 08c10000 08c10000 istri 19 0000000000000001 aaaaaaaa00aaaaaa -> 08c10000 08c10000 istri 19 0000000000000000 aaaaaaaaaaaaaaaa -> 08410000 08410000 istri 19 aaaaaaaaaaaaaaaa 0000000000000000 -> 08810000 08810000 +istri 41 aaaabbbbccccdddd 000000000000bbcc -> 00810005 00810005 +istri 41 aaaabbbbccccdddd 000000000000ccbb -> 00810005 00810005 +istri 41 baaabbbbccccdddd 000000000000ccbb -> 00810005 00810005 +istri 41 baaabbbbccccdddc 000000000000ccbb -> 00810005 00810005 +istri 41 bbbbbbbbbbbbbbbb 000000000000ccbb -> 08810007 08810007 +istri 41 bbbbbbbb00bbbbbb 000000000000ccbb -> 08c10002 08c10002 +istri 41 bbbbbbbbbbbb00bb 000000000000ccbb -> 08c10000 08c10000 +istri 41 bbbbbbbbbbbbbb00 000000000000ccbb -> 00c00008 00c00008 +istri 41 0000000000000000 000000000000ccbb -> 00c00008 00c00008 +istri 41 0000000000000000 0000000000000000 -> 00c00008 00c00008 +istri 41 bbbbbbbbbbbbbbbb 000000000000ccbb -> 08810007 08810007 +istri 41 bbbbbbbbbbbbbbbb 00000000000000bb -> 08810007 08810007 +istri 41 bb44bb44bb44bb44 000000006622ccbb -> 00810007 00810007 +istri 41 bb44bb44bb44bb44 000000000022ccbb -> 00810007 00810007 +istri 41 bb44bb44bb44bb44 000000000000ccbb -> 00810007 00810007 +istri 41 bb44bb44bb44bb44 00000000000000bb -> 00810007 00810007 +istri 41 0011223344556677 0000997755442211 -> 08c10006 08c10006 +istri 41 1122334455667711 0000997755442211 -> 08810007 08810007 +istri 41 0011223344556677 0000aa8866553322 -> 00c10005 00c10005 +istri 41 1122334455667711 0000aa8866553322 -> 00810006 00810006 |
|
From: Julian S. <se...@so...> - 2018-02-06 11:55:49
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=0cf2d76385039217b284ccc1745fc992f0a2a98b commit 0cf2d76385039217b284ccc1745fc992f0a2a98b Author: Julian Seward <js...@ac...> Date: Tue Feb 6 12:54:03 2018 +0100 Bug 384631 - Sanitise client args as printed with -v umsg_arg, xml_arg: sanitise the guest's command line arguments that we print in a "Command: " line as part of the preamble, when -v is given. This changes any character outside the range 32 .. 127 to '_'. Printing unsanitised command line args has been observed to cause xfce4-terminal to assert. Of course the command line args actually given to the guest aren't changed -- this just changes how they are printed. This fixes #384631. Diff: --- coregrind/m_libcprint.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/coregrind/m_libcprint.c b/coregrind/m_libcprint.c index 3c437e4..1069d12 100644 --- a/coregrind/m_libcprint.c +++ b/coregrind/m_libcprint.c @@ -53,9 +53,25 @@ /*=== Printing the preamble ===*/ /*====================================================================*/ +// Returns a strdup'd copy of |str| in which characters which are not in the +// obviously-harmless-ASCII range are replaced with '_'. Not doing this has +// been observed to cause xfce4-terminal to assert. Caller takes ownership +// of the returned string. +static HChar* sanitise_arg (const HChar* arg) +{ + HChar* clone = VG_(strdup)("m_libcprint.sanitise_arg", arg); + for (HChar* p = clone; *p; p++) { + UInt c = * ((UChar*)p); + if (c < 32 || c > 127) c = '_'; + *p = (HChar)c; + } + return clone; +} + // Print the argument, escaping any chars that require it. -static void umsg_arg(const HChar *arg) +static void umsg_arg(const HChar *unsanitised_arg) { + HChar* arg = sanitise_arg(unsanitised_arg); SizeT len = VG_(strlen)(arg); const HChar *special = " \\<>"; for (UInt i = 0; i < len; i++) { @@ -64,12 +80,15 @@ static void umsg_arg(const HChar *arg) } VG_(umsg)("%c", arg[i]); } + VG_(free)(arg); } // Send output to the XML-stream and escape any XML meta-characters. -static void xml_arg(const HChar *arg) +static void xml_arg(const HChar *unsanitised_arg) { + HChar* arg = sanitise_arg(unsanitised_arg); VG_(printf_xml)("%pS", arg); + VG_(free)(arg); } // Write the name and value of log file qualifiers to the xml file. |