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
(11) |
3
|
4
(9) |
5
(10) |
6
(4) |
7
(14) |
|
8
(15) |
9
(15) |
10
(14) |
11
(13) |
12
(16) |
13
(12) |
14
(9) |
|
15
(21) |
16
(13) |
17
(11) |
18
(13) |
19
(5) |
20
(29) |
21
(20) |
|
22
(13) |
23
(18) |
24
(21) |
25
(17) |
26
(26) |
27
(13) |
28
(17) |
|
29
(10) |
30
(5) |
|
|
|
|
|
|
From: <sv...@va...> - 2014-06-26 13:35:02
|
Author: tom
Date: Thu Jun 26 13:34:53 2014
New Revision: 14113
Log:
Wire up recvmmsg on arm. BZ#334585.
Modified:
trunk/NEWS
trunk/coregrind/m_syswrap/syswrap-arm-linux.c
trunk/docs/internals/3_9_BUGSTATUS.txt
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Thu Jun 26 13:34:53 2014
@@ -157,6 +157,7 @@
333817 Valgrind reports the memory areas written to by the SG_IO
ioctl as untouched
334049 lzcnt fails silently (x86_32)
+334585 recvmmsg unhandled (+patch) (arm)
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
Modified: trunk/coregrind/m_syswrap/syswrap-arm-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-arm-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-arm-linux.c Thu Jun 26 13:34:53 2014
@@ -1220,7 +1220,7 @@
LINX_(__NR_pwritev, sys_pwritev), // 362
LINXY(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo),// 363
LINXY(__NR_perf_event_open, sys_perf_event_open), // 364
-
+ LINXY(__NR_recvmmsg, sys_recvmmsg), // 365
LINXY(__NR_accept4, sys_accept4), // 366
LINXY(__NR_fanotify_init, sys_fanotify_init), // 367
LINX_(__NR_fanotify_mark, sys_fanotify_mark), // 368
Modified: trunk/docs/internals/3_9_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_9_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_9_BUGSTATUS.txt Thu Jun 26 13:34:53 2014
@@ -57,7 +57,6 @@
333434 In some weird corner case Valgrind cannot execute
executable files symlinked by /proc/self/fd (related to 331311?)
333051 handling hugepages (is largely broken)
-334585 recvmmsg unhandled (+patch) (arm)
=== Debuginfo reader ===================================================
|
|
From: <sv...@va...> - 2014-06-26 13:15:08
|
Author: tom
Date: Thu Jun 26 13:14:56 2014
New Revision: 14112
Log:
Add SIOCATMARK ioctl support.
Patch from Austin English via BZ#335441.
Modified:
trunk/NEWS
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/docs/internals/3_9_BUGSTATUS.txt
trunk/include/vki/vki-amd64-linux.h
trunk/include/vki/vki-arm-linux.h
trunk/include/vki/vki-arm64-linux.h
trunk/include/vki/vki-mips32-linux.h
trunk/include/vki/vki-mips64-linux.h
trunk/include/vki/vki-ppc32-linux.h
trunk/include/vki/vki-ppc64-linux.h
trunk/include/vki/vki-s390x-linux.h
trunk/include/vki/vki-x86-linux.h
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Thu Jun 26 13:14:56 2014
@@ -165,6 +165,7 @@
335155 vgdb, fix error print statement.
335262 arm64: movi 8bit version is not supported
335263 arm64: dmb instruction is not implemented
+335441 unhandled ioctl 0x8905 (SIOCATMARK) when running wine under valgrind
335496 arm64: sbc/abc instructions are not implemented
n-i-bz Fix KVM_CREATE_IRQCHIP ioctl handling
n-i-bz s390x: Fix memory corruption for multithreaded applications
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c Thu Jun 26 13:14:56 2014
@@ -6038,6 +6038,10 @@
//tst->sys_flags &= ~SfMayBlock;
break;
+ case VKI_SIOCATMARK:
+ PRE_MEM_READ( "ioctl(SIOCATMARK)", ARG3, sizeof(int) );
+ break;
+
/* linux/soundcard interface (OSS) */
case VKI_SNDCTL_SEQ_GETOUTCOUNT:
case VKI_SNDCTL_SEQ_GETINCOUNT:
@@ -7414,6 +7418,10 @@
case VKI_SIOCSPGRP:
break;
+ case VKI_SIOCATMARK:
+ POST_MEM_WRITE(ARG3, sizeof(int));
+ break;
+
/* linux/soundcard interface (OSS) */
case VKI_SNDCTL_SEQ_GETOUTCOUNT:
case VKI_SNDCTL_SEQ_GETINCOUNT:
Modified: trunk/docs/internals/3_9_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_9_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_9_BUGSTATUS.txt Thu Jun 26 13:14:56 2014
@@ -179,7 +179,6 @@
334834 PPC64 Little Endian support, patch 2
334836 PPC64 Little Endian support, patch 3 testcase fixes
335353 expected output of exp-sgcheck/tests/hackedbz2 mismatch with gcc 4.8.1
-335441 unhandled ioctl 0x8905 (SIOCATMARK) when running wine under valgrind (patch)
249435 Analyzing wine programs with callgrind triggers a crash (NEEDS CLOSE)
335563 wine's kernel32/thread test fails under valgrind
335618 arm(thumb): unhanded instruction: mov.w rN, pc/sp
Modified: trunk/include/vki/vki-amd64-linux.h
==============================================================================
--- trunk/include/vki/vki-amd64-linux.h (original)
+++ trunk/include/vki/vki-amd64-linux.h Thu Jun 26 13:14:56 2014
@@ -311,6 +311,7 @@
#define VKI_SIOCSPGRP 0x8902
#define VKI_SIOCGPGRP 0x8904
+#define VKI_SIOCATMARK 0x8905
#define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
#define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
Modified: trunk/include/vki/vki-arm-linux.h
==============================================================================
--- trunk/include/vki/vki-arm-linux.h (original)
+++ trunk/include/vki/vki-arm-linux.h Thu Jun 26 13:14:56 2014
@@ -313,6 +313,7 @@
#define VKI_SIOCSPGRP 0x8902
#define VKI_SIOCGPGRP 0x8904
+#define VKI_SIOCATMARK 0x8905
#define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
#define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
Modified: trunk/include/vki/vki-arm64-linux.h
==============================================================================
--- trunk/include/vki/vki-arm64-linux.h (original)
+++ trunk/include/vki/vki-arm64-linux.h Thu Jun 26 13:14:56 2014
@@ -284,6 +284,7 @@
#define VKI_SIOCSPGRP 0x8902
#define VKI_SIOCGPGRP 0x8904
+#define VKI_SIOCATMARK 0x8905
#define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
#define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
Modified: trunk/include/vki/vki-mips32-linux.h
==============================================================================
--- trunk/include/vki/vki-mips32-linux.h (original)
+++ trunk/include/vki/vki-mips32-linux.h Thu Jun 26 13:14:56 2014
@@ -382,6 +382,7 @@
#define VKI_SIOCSPGRP 0x8902
#define VKI_SIOCGPGRP 0x8904
+#define VKI_SIOCATMARK 0x8905
#define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
#define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
Modified: trunk/include/vki/vki-mips64-linux.h
==============================================================================
--- trunk/include/vki/vki-mips64-linux.h (original)
+++ trunk/include/vki/vki-mips64-linux.h Thu Jun 26 13:14:56 2014
@@ -387,6 +387,7 @@
#define VKI_SIOCSPGRP 0x8902
#define VKI_SIOCGPGRP 0x8904
+#define VKI_SIOCATMARK 0x8905
#define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
#define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
Modified: trunk/include/vki/vki-ppc32-linux.h
==============================================================================
--- trunk/include/vki/vki-ppc32-linux.h (original)
+++ trunk/include/vki/vki-ppc32-linux.h Thu Jun 26 13:14:56 2014
@@ -380,6 +380,7 @@
#define VKI_SIOCSPGRP 0x8902
#define VKI_SIOCGPGRP 0x8904
+#define VKI_SIOCATMARK 0x8905
#define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
#define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
Modified: trunk/include/vki/vki-ppc64-linux.h
==============================================================================
--- trunk/include/vki/vki-ppc64-linux.h (original)
+++ trunk/include/vki/vki-ppc64-linux.h Thu Jun 26 13:14:56 2014
@@ -431,6 +431,7 @@
#define VKI_SIOCSPGRP 0x8902
#define VKI_SIOCGPGRP 0x8904
+#define VKI_SIOCATMARK 0x8905
#define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
#define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
Modified: trunk/include/vki/vki-s390x-linux.h
==============================================================================
--- trunk/include/vki/vki-s390x-linux.h (original)
+++ trunk/include/vki/vki-s390x-linux.h Thu Jun 26 13:14:56 2014
@@ -377,6 +377,7 @@
#define VKI_SIOCSPGRP 0x8902
#define VKI_SIOCGPGRP 0x8904
+#define VKI_SIOCATMARK 0x8905
#define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
/* since 2.6.22 */
#define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
Modified: trunk/include/vki/vki-x86-linux.h
==============================================================================
--- trunk/include/vki/vki-x86-linux.h (original)
+++ trunk/include/vki/vki-x86-linux.h Thu Jun 26 13:14:56 2014
@@ -351,6 +351,7 @@
#define VKI_SIOCSPGRP 0x8902
#define VKI_SIOCGPGRP 0x8904
+#define VKI_SIOCATMARK 0x8905
#define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
#define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
|
From: <sv...@va...> - 2014-06-26 12:53:31
|
Author: tom
Date: Thu Jun 26 12:53:23 2014
New Revision: 14111
Log:
Implement various SNDRV_CTL_xxx ioctls.
Patch from Ivan Sorokin via BZ#334936.
Modified:
trunk/NEWS
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/docs/internals/3_9_BUGSTATUS.txt
trunk/include/vki/vki-linux.h
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Thu Jun 26 12:53:23 2014
@@ -160,6 +160,7 @@
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
+334936 patch to fix false positives on alsa SNDRV_CTL_* ioctls
335034 Unhandled ioctl: HCIGETDEVLIST
335155 vgdb, fix error print statement.
335262 arm64: movi 8bit version is not supported
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c Thu Jun 26 12:53:23 2014
@@ -6104,6 +6104,39 @@
case VKI_SNDRV_PCM_IOCTL_LINK:
/* these just take an int by value */
break;
+ case VKI_SNDRV_CTL_IOCTL_PVERSION:
+ PRE_MEM_WRITE( "ioctl(SNDRV_CTL_IOCTL_PVERSION)", (Addr)ARG3, sizeof(int) );
+ break;
+ case VKI_SNDRV_CTL_IOCTL_CARD_INFO:
+ PRE_MEM_WRITE( "ioctl(SNDRV_CTL_IOCTL_CARD_INFO)", (Addr)ARG3, sizeof(struct vki_snd_ctl_card_info) );
+ break;
+ case VKI_SNDRV_CTL_IOCTL_ELEM_LIST: {
+ struct vki_snd_ctl_elem_list *data = (struct vki_snd_ctl_elem_list *)ARG3;
+ PRE_MEM_READ( "ioctl(SNDRV_CTL_IOCTL_ELEM_LIST)", (Addr)&data->offset, sizeof(data->offset) );
+ PRE_MEM_READ( "ioctl(SNDRV_CTL_IOCTL_ELEM_LIST)", (Addr)&data->space, sizeof(data->space) );
+ PRE_MEM_WRITE( "ioctl(SNDRV_CTL_IOCTL_ELEM_LIST)", (Addr)&data->used, sizeof(data->used) );
+ PRE_MEM_WRITE( "ioctl(SNDRV_CTL_IOCTL_ELEM_LIST)", (Addr)&data->count, sizeof(data->count) );
+ PRE_MEM_READ( "ioctl(SNDRV_CTL_IOCTL_ELEM_LIST)", (Addr)&data->pids, sizeof(data->pids) );
+ if (data->pids) {
+ PRE_MEM_WRITE( "ioctl(SNDRV_CTL_IOCTL_ELEM_LIST)", (Addr)data->pids, sizeof(struct vki_snd_ctl_elem_id) * data->space );
+ }
+ break;
+ }
+ case VKI_SNDRV_CTL_IOCTL_TLV_READ: {
+ struct vki_snd_ctl_tlv *data = (struct vki_snd_ctl_tlv *)ARG3;
+ PRE_MEM_READ( "ioctl(SNDRV_CTL_IOCTL_TLV_READ)", (Addr)&data->numid, sizeof(data->numid) );
+ PRE_MEM_READ( "ioctl(SNDRV_CTL_IOCTL_TLV_READ)", (Addr)&data->length, sizeof(data->length) );
+ PRE_MEM_WRITE( "ioctl(SNDRV_CTL_IOCTL_TLV_READ)", (Addr)data->tlv, data->length );
+ break;
+ }
+ case VKI_SNDRV_CTL_IOCTL_TLV_WRITE:
+ case VKI_SNDRV_CTL_IOCTL_TLV_COMMAND: {
+ struct vki_snd_ctl_tlv *data = (struct vki_snd_ctl_tlv *)ARG3;
+ PRE_MEM_READ( "ioctl(SNDRV_CTL_IOCTL_TLV_WRITE)", (Addr)&data->numid, sizeof(data->numid) );
+ PRE_MEM_READ( "ioctl(SNDRV_CTL_IOCTL_TLV_WRITE)", (Addr)&data->length, sizeof(data->length) );
+ PRE_MEM_READ( "ioctl(SNDRV_CTL_IOCTL_TLV_WRITE)", (Addr)data->tlv, data->length );
+ break;
+ }
/* Real Time Clock (/dev/rtc) ioctls */
case VKI_RTC_UIE_ON:
@@ -7449,6 +7482,30 @@
case VKI_SNDRV_TIMER_IOCTL_STOP:
case VKI_SNDRV_TIMER_IOCTL_CONTINUE:
case VKI_SNDRV_TIMER_IOCTL_PAUSE:
+ case VKI_SNDRV_CTL_IOCTL_PVERSION: {
+ POST_MEM_WRITE( (Addr)ARG3, sizeof(int) );
+ break;
+ }
+ case VKI_SNDRV_CTL_IOCTL_CARD_INFO:
+ POST_MEM_WRITE( (Addr)ARG3, sizeof(struct vki_snd_ctl_card_info) );
+ break;
+ case VKI_SNDRV_CTL_IOCTL_ELEM_LIST: {
+ struct vki_snd_ctl_elem_list *data = (struct vki_snd_ctl_elem_list *)ARG3;
+ POST_MEM_WRITE( (Addr)&data->used, sizeof(data->used) );
+ POST_MEM_WRITE( (Addr)&data->count, sizeof(data->count) );
+ if (data->pids) {
+ POST_MEM_WRITE( (Addr)data->pids, sizeof(struct vki_snd_ctl_elem_id) * data->used );
+ }
+ break;
+ }
+ case VKI_SNDRV_CTL_IOCTL_TLV_READ: {
+ struct vki_snd_ctl_tlv *data = (struct vki_snd_ctl_tlv *)ARG3;
+ POST_MEM_WRITE( (Addr)data->tlv, data->length );
+ break;
+ }
+ case VKI_SNDRV_CTL_IOCTL_TLV_WRITE:
+ case VKI_SNDRV_CTL_IOCTL_TLV_COMMAND:
+ break;
/* SCSI no operand */
case VKI_SCSI_IOCTL_DOORLOCK:
Modified: trunk/docs/internals/3_9_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_9_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_9_BUGSTATUS.txt Thu Jun 26 12:53:23 2014
@@ -168,7 +168,6 @@
========================================================================
========================================================================
-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
Modified: trunk/include/vki/vki-linux.h
==============================================================================
--- trunk/include/vki/vki-linux.h (original)
+++ trunk/include/vki/vki-linux.h Thu Jun 26 12:53:23 2014
@@ -2312,6 +2312,59 @@
VKI_SNDRV_TIMER_IOCTL_PAUSE = _VKI_IO('T', 0xa3),
};
+struct vki_snd_ctl_card_info {
+ int card; /* card number */
+ int pad; /* reserved for future (was type) */
+ unsigned char id[16]; /* ID of card (user selectable) */
+ unsigned char driver[16]; /* Driver name */
+ unsigned char name[32]; /* Short name of soundcard */
+ unsigned char longname[80]; /* name + info text about soundcard */
+ unsigned char reserved_[16]; /* reserved for future (was ID of mixer) */
+ unsigned char mixername[80]; /* visual mixer identification */
+ unsigned char components[128]; /* card components / fine identification, delimited with one space (AC97 etc..) */
+};
+
+typedef int vki_snd_ctl_elem_iface_t;
+#define VKI_SNDRV_CTL_ELEM_IFACE_CARD ((vki_snd_ctl_elem_iface_t) 0) /* global control */
+#define VKI_SNDRV_CTL_ELEM_IFACE_HWDEP ((vki_snd_ctl_elem_iface_t) 1) /* hardware dependent device */
+#define VKI_SNDRV_CTL_ELEM_IFACE_MIXER ((vki_snd_ctl_elem_iface_t) 2) /* virtual mixer device */
+#define VKI_SNDRV_CTL_ELEM_IFACE_PCM ((vki_snd_ctl_elem_iface_t) 3) /* PCM device */
+#define VKI_SNDRV_CTL_ELEM_IFACE_RAWMIDI ((vki_snd_ctl_elem_iface_t) 4) /* RawMidi device */
+#define VKI_SNDRV_CTL_ELEM_IFACE_TIMER ((vki_snd_ctl_elem_iface_t) 5) /* timer device */
+#define VKI_SNDRV_CTL_ELEM_IFACE_SEQUENCER ((vki_snd_ctl_elem_iface_t) 6) /* sequencer client */
+#define VKI_SNDRV_CTL_ELEM_IFACE_LAST VKI_SNDRV_CTL_ELEM_IFACE_SEQUENCER
+
+struct vki_snd_ctl_elem_id {
+ unsigned int numid; /* numeric identifier, zero = invalid */
+ vki_snd_ctl_elem_iface_t iface; /* interface identifier */
+ unsigned int device; /* device/client number */
+ unsigned int subdevice; /* subdevice (substream) number */
+ unsigned char name[44]; /* ASCII name of item */
+ unsigned int index; /* index of item */
+};
+
+struct vki_snd_ctl_elem_list {
+ unsigned int offset; /* W: first element ID to get */
+ unsigned int space; /* W: count of element IDs to get */
+ unsigned int used; /* R: count of element IDs set */
+ unsigned int count; /* R: count of all elements */
+ struct vki_snd_ctl_elem_id __user *pids; /* R: IDs */
+ unsigned char reserved[50];
+};
+
+struct vki_snd_ctl_tlv {
+ unsigned int numid; /* control element numeric identification */
+ unsigned int length; /* in bytes aligned to 4 */
+ unsigned int tlv[0]; /* first TLV */
+};
+
+#define VKI_SNDRV_CTL_IOCTL_PVERSION _VKI_IOR('U', 0x00, int)
+#define VKI_SNDRV_CTL_IOCTL_CARD_INFO _VKI_IOR('U', 0x01, struct vki_snd_ctl_card_info)
+#define VKI_SNDRV_CTL_IOCTL_ELEM_LIST _VKI_IOWR('U', 0x10, struct vki_snd_ctl_elem_list)
+#define VKI_SNDRV_CTL_IOCTL_TLV_READ _VKI_IOWR('U', 0x1a, struct vki_snd_ctl_tlv)
+#define VKI_SNDRV_CTL_IOCTL_TLV_WRITE _VKI_IOWR('U', 0x1b, struct vki_snd_ctl_tlv)
+#define VKI_SNDRV_CTL_IOCTL_TLV_COMMAND _VKI_IOWR('U', 0x1c, struct vki_snd_ctl_tlv)
+
//----------------------------------------------------------------------
// From linux-2.6.15.4/include/linux/serial.h
//----------------------------------------------------------------------
|
|
From: <sv...@va...> - 2014-06-26 12:41:03
|
Author: sewardj
Date: Thu Jun 26 12:40:54 2014
New Revision: 14110
Log:
arm64: add/enable testcases:
pmul, pmull, rbit, rev16,
LD1/ST1 (multiple 1-elem structs to/from 3 regs, no offset)
LD3/ST3 (multiple 3-elem structs to/from 3/regs, post index)
Modified:
trunk/none/tests/arm64/fp_and_simd.c
trunk/none/tests/arm64/integer.c
Modified: trunk/none/tests/arm64/fp_and_simd.c
==============================================================================
--- trunk/none/tests/arm64/fp_and_simd.c (original)
+++ trunk/none/tests/arm64/fp_and_simd.c Thu Jun 26 12:40:54 2014
@@ -3757,12 +3757,12 @@
if (1) test_not_8b_8b(TyB);
// pmul 16b,8b
- if (0) test_pmul_16b_16b_16b(TyB);
- if (0) test_pmul_8b_8b_8b(TyB);
+ if (1) test_pmul_16b_16b_16b(TyB);
+ if (1) test_pmul_8b_8b_8b(TyB);
// pmull{2} 8h_8b_8b,8h_16b_16b,1q_1d_1d,1q_2d_2d
- if (0) test_pmull_8h_8b_8b(TyB);
- if (0) test_pmull2_8h_16b_16b(TyB);
+ if (1) test_pmull_8h_8b_8b(TyB);
+ if (1) test_pmull2_8h_16b_16b(TyB);
//if (0) test_pmull_1q_1d_1d(TyD);
//if (0) test_pmull_1q_2d_2d(TyD);
@@ -3770,10 +3770,10 @@
// rev16 16b,8b
// rev32 16b,8b,8h,4h
// rev64 16b,8b,8h,4h,4s,2s
- if (0) test_rbit_16b_16b(TyB);
- if (0) test_rbit_8b_8b(TyB);
- if (0) test_rev16_16b_16b(TyB);
- if (0) test_rev16_8b_8b(TyB);
+ if (1) test_rbit_16b_16b(TyB);
+ if (1) test_rbit_8b_8b(TyB);
+ if (1) test_rev16_16b_16b(TyB);
+ if (1) test_rev16_8b_8b(TyB);
if (0) test_rev32_16b_16b(TyB);
if (0) test_rev32_8b_8b(TyB);
if (0) test_rev32_8h_8h(TyH);
Modified: trunk/none/tests/arm64/integer.c
==============================================================================
--- trunk/none/tests/arm64/integer.c (original)
+++ trunk/none/tests/arm64/integer.c Thu Jun 26 12:40:54 2014
@@ -10950,22 +10950,22 @@
// Out: memory area, xferred vec regs, xferred int regs, addr reg1, addr reg2
//
// INSN may mention the following regs as containing load/store data:
-// x13 x23 v17 v18
+// x13 x23 v17 v18 v19 v20
// and
// x5 as containing the base address
// x6 as containing an offset, if required
-// A memory area is filled with random data, and x13, x23, v17 and v18
+// A memory area is filled with random data, and x13, x23, v17, v18, v19, v20
// are loaded with random data too. INSN is then executed, with
// x5 set to the middle of the memory area + AREG1OFF, and x6 set to AREG2VAL.
//
-// What is printed out: the XOR of the old and new versions of the
+// What is printed out: the XOR of the new and old versions of the
// following:
// the memory area
-// x13 x23 v17 v18
-// and the new-old values of these
+// x13 x23 v17 v18 v19 v20
+// and the SUB of the new and old values of the following:
// x5 x6
-// If the insn modifies its base register then the x5 version will
-// be different.
+// If the insn modifies its base register then (obviously) the x5 "new - old"
+// value will be nonzero.
#define MEM_TEST(INSN, AREG1OFF, AREG2VAL) { \
int i; \
@@ -10973,39 +10973,50 @@
UChar* area = memalign16(N); \
UChar area2[N]; \
for (i = 0; i < N; i++) area[i] = area2[i] = randUChar(); \
- ULong block[8]; /* x13 x23 v17.d[0] v17.d[1] v18.d[0] v18.d[1] x5 x6 */ \
- for (i = 0; i < 6; i++) block[i] = randULong(); \
- block[6] = (ULong)(&area[128]) + (Long)(Int)AREG1OFF; \
- block[7] = (Long)AREG2VAL; \
- ULong block2[8]; \
- for (i = 0; i < 8; i++) block2[i] = block[i]; \
+ ULong block[12]; \
+ /* 0:x13 1:x23 2:v17.d[0] 3:v17.d[1] 4:v18.d[0] 5:v18.d[1] */ \
+ /* 6:v19.d[0] 7:v19.d[1] 8:v20.d[0] 9:v20.d[1] 10:x5 11:x6 */ \
+ for (i = 0; i < 12; i++) block[i] = randULong(); \
+ block[10] = (ULong)(&area[128]) + (Long)(Int)AREG1OFF; \
+ block[11] = (Long)AREG2VAL; \
+ ULong block2[12]; \
+ for (i = 0; i < 12; i++) block2[i] = block[i]; \
__asm__ __volatile__( \
"ldr x13, [%0, #0] ; " \
"ldr x23, [%0, #8] ; " \
"ldr q17, [%0, #16] ; " \
"ldr q18, [%0, #32] ; " \
- "ldr x5, [%0, #48] ; " \
- "ldr x6, [%0, #56] ; " \
+ "ldr q19, [%0, #48] ; " \
+ "ldr q20, [%0, #64] ; " \
+ "ldr x5, [%0, #80] ; " \
+ "ldr x6, [%0, #88] ; " \
INSN " ; " \
"str x13, [%0, #0] ; " \
"str x23, [%0, #8] ; " \
"str q17, [%0, #16] ; " \
"str q18, [%0, #32] ; " \
- "str x5, [%0, #48] ; " \
- "str x6, [%0, #56] ; " \
- : : "r"(&block[0]) : "x5", "x6", "x13","x23","v17","v18","memory","cc" \
+ "str q19, [%0, #48] ; " \
+ "str q20, [%0, #64] ; " \
+ "str x5, [%0, #80] ; " \
+ "str x6, [%0, #88] ; " \
+ : : "r"(&block[0]) : "x5", "x6", "x13", "x23", \
+ "v17", "v18", "v19", "v20", "memory", "cc" \
); \
printf("%s with x5 = middle_of_block+%lld, x6=%lld\n", \
INSN, (Long)AREG1OFF, (Long)AREG2VAL); \
show_block_xor(&area2[0], area, 256); \
- printf(" %016llx x13 (xfer intreg #1)\n", block[0] ^ block2[0]); \
- printf(" %016llx x23 (xfer intreg #2)\n", block[1] ^ block2[1]); \
- printf(" %016llx v17.d[0] (xfer vecreg #1)\n", block[2] ^ block2[2]); \
- printf(" %016llx v17.d[1] (xfer vecreg #1)\n", block[3] ^ block2[3]); \
- printf(" %016llx v18.d[0] (xfer vecreg #2)\n", block[4] ^ block2[4]); \
- printf(" %016llx v18.d[1] (xfer vecreg #2)\n", block[5] ^ block2[5]); \
- printf(" %16lld x5 (base reg)\n", block[6] - block2[6]); \
- printf(" %16lld x6 (index reg)\n", block[7] - block2[7]); \
+ printf(" %016llx x13 (xor, xfer intreg #1)\n", block[0] ^ block2[0]); \
+ printf(" %016llx x23 (xor, xfer intreg #2)\n", block[1] ^ block2[1]); \
+ printf(" %016llx v17.d[0] (xor, xfer vecreg #1)\n", block[2] ^ block2[2]); \
+ printf(" %016llx v17.d[1] (xor, xfer vecreg #1)\n", block[3] ^ block2[3]); \
+ printf(" %016llx v18.d[0] (xor, xfer vecreg #2)\n", block[4] ^ block2[4]); \
+ printf(" %016llx v18.d[1] (xor, xfer vecreg #2)\n", block[5] ^ block2[5]); \
+ printf(" %016llx v19.d[0] (xor, xfer vecreg #3)\n", block[6] ^ block2[6]); \
+ printf(" %016llx v19.d[1] (xor, xfer vecreg #3)\n", block[7] ^ block2[7]); \
+ printf(" %016llx v20.d[0] (xor, xfer vecreg #3)\n", block[8] ^ block2[8]); \
+ printf(" %016llx v20.d[1] (xor, xfer vecreg #3)\n", block[9] ^ block2[9]); \
+ printf(" %16lld x5 (sub, base reg)\n", block[10] - block2[10]); \
+ printf(" %16lld x6 (sub, index reg)\n", block[11] - block2[11]); \
printf("\n"); \
free(area); \
}
@@ -11397,7 +11408,8 @@
MEM_TEST("ld1r {v17.8b}, [x5], x6", 3, 3)
////////////////////////////////////////////////////////////////
-printf("LD2/ST2 (multiple structures, post index) (VERY INCOMPLETE)\n");
+printf("LD2/ST2 (multiple 2-elem structs to/from 2/regs, post index)"
+ " (VERY INCOMPLETE)\n");
MEM_TEST("ld2 {v17.2d, v18.2d}, [x5], #32", 3, 0)
MEM_TEST("st2 {v17.2d, v18.2d}, [x5], #32", 7, 0)
@@ -11407,12 +11419,30 @@
////////////////////////////////////////////////////////////////
-printf("LD1/ST1 (multiple structures, no offset) (VERY INCOMPLETE)\n");
+printf("LD1/ST1 (multiple 1-elem structs to/from 2 regs, no offset)"
+ " (VERY INCOMPLETE)\n");
MEM_TEST("ld1 {v17.16b, v18.16b}, [x5]", 3, 0)
MEM_TEST("st1 {v17.16b, v18.16b}, [x5]", 7, 0)
+////////////////////////////////////////////////////////////////
+printf("LD1/ST1 (multiple 1-elem structs to/from 3 regs, no offset)"
+ " (VERY INCOMPLETE)\n");
+
+MEM_TEST("ld1 {v17.16b, v18.16b, v19.16b}, [x5]", 3, 0)
+MEM_TEST("st1 {v17.16b, v18.16b, v19.16b}, [x5]", 7, 0)
+
+
+////////////////////////////////////////////////////////////////
+printf("LD3/ST3 (multiple 3-elem structs to/from 3/regs, post index)"
+ " (VERY INCOMPLETE)\n");
+
+MEM_TEST("ld3 {v17.2d, v18.2d, v19.2d}, [x5], #48", 13, 0)
+MEM_TEST("st3 {v17.2d, v18.2d, v19.2d}, [x5], #48", 17, 0)
+
+
+
} /* end of test_memory2() */
////////////////////////////////////////////////////////////////
|
Author: sewardj
Date: Thu Jun 26 12:39:05 2014
New Revision: 2891
Log:
arm64: implement: rbit 16b,8b, rev16 16b,8b
Modified:
trunk/priv/guest_arm64_toIR.c
trunk/priv/host_arm64_defs.c
trunk/priv/host_arm64_defs.h
trunk/priv/host_arm64_isel.c
trunk/priv/ir_defs.c
trunk/pub/libvex_ir.h
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Thu Jun 26 12:39:05 2014
@@ -5657,6 +5657,16 @@
}
+/* |fullWidth| is a full V128 width result. Depending on bitQ,
+ zero out the upper half. */
+static IRExpr* math_MAYBE_ZERO_HI64 ( UInt bitQ, IRTemp fullWidth )
+{
+ if (bitQ == 1) return mkexpr(fullWidth);
+ if (bitQ == 0) return unop(Iop_ZeroHI64ofV128, mkexpr(fullWidth));
+ vassert(0);
+}
+
+
static
Bool dis_AdvSIMD_EXT(/*MB_OUT*/DisResult* dres, UInt insn)
{
@@ -7464,6 +7474,17 @@
UInt dd = INSN(4,0);
vassert(size < 4);
+ if (bitU == 0 && size == X00 && opcode == BITS5(0,0,0,0,1)) {
+ /* -------- 0,00,00001: REV16 16b_16b, 8b_8b -------- */
+ IRTemp res = newTemp(Ity_V128);
+ assign(res, unop(Iop_Reverse8sIn16_x8, getQReg128(nn)));
+ putQReg128(dd, math_MAYBE_ZERO_HI64(bitQ, res));
+ const HChar* arr = nameArr_Q_SZ(bitQ, 0);
+ DIP("%s %s.%s, %s.%s\n", "rev16",
+ nameQReg128(dd), arr, nameQReg128(nn), arr);
+ return True;
+ }
+
if (opcode == BITS5(0,0,1,0,0)) {
/* -------- 0,xx,00100: CLS std6_std6 -------- */
/* -------- 1,xx,00100: CLZ std6_std6 -------- */
@@ -7489,12 +7510,24 @@
assign(res, unop(bitU == 0 ? Iop_Cnt8x16 : Iop_NotV128, getQReg128(nn)));
putQReg128(dd, bitQ == 0 ? unop(Iop_ZeroHI64ofV128, mkexpr(res))
: mkexpr(res));
- const HChar* arr = nameArr_Q_SZ(bitQ, size);
+ const HChar* arr = nameArr_Q_SZ(bitQ, 0);
DIP("%s %s.%s, %s.%s\n", bitU == 0 ? "cnt" : "not",
nameQReg128(dd), arr, nameQReg128(nn), arr);
return True;
}
+ if (bitU == 1 && size == X01 && opcode == BITS5(0,0,1,0,1)) {
+ /* -------- 1,01,00101 RBIT 16b_16b, 8b_8b -------- */
+ IRTemp res = newTemp(Ity_V128);
+ assign(res, unop(Iop_Reverse1sIn8_x16, getQReg128(nn)));
+ putQReg128(dd, bitQ == 0 ? unop(Iop_ZeroHI64ofV128, mkexpr(res))
+ : mkexpr(res));
+ const HChar* arr = nameArr_Q_SZ(bitQ, 0);
+ DIP("%s %s.%s, %s.%s\n", "rbit",
+ nameQReg128(dd), arr, nameQReg128(nn), arr);
+ return True;
+ }
+
if (opcode == BITS5(0,1,0,0,0)) {
/* -------- 0,xx,01000: CMGT std7_std7_#0 -------- */ // >s 0
/* -------- 1,xx,01000: CMGE std7_std7_#0 -------- */ // >=s 0
Modified: trunk/priv/host_arm64_defs.c
==============================================================================
--- trunk/priv/host_arm64_defs.c (original)
+++ trunk/priv/host_arm64_defs.c Thu Jun 26 12:39:05 2014
@@ -947,6 +947,8 @@
case ARM64vecu_CLZ16x8: *nm = "clz "; *ar = "8h"; return;
case ARM64vecu_CLZ8x16: *nm = "clz "; *ar = "16b"; return;
case ARM64vecu_CNT8x16: *nm = "cnt "; *ar = "16b"; return;
+ case ARM64vecu_RBIT: *nm = "rbit "; *ar = "16b"; return;
+ case ARM64vecu_REV1616B: *nm = "rev16"; *ar = "16b"; return;
default: vpanic("showARM64VecUnaryOp");
}
}
@@ -5387,6 +5389,10 @@
011 01110 00 1 00000 010010 n d CLZ Vd.16b, Vn.16b
010 01110 00 1 00000 010110 n d CNT Vd.16b, Vn.16b
+
+ 011 01110 01 1 00000 010110 n d RBIT Vd.16b, Vn.16b
+
+ 010 01110 00 1 00000 000110 n d REV16 Vd.16b, Vn.16b
*/
UInt vD = qregNo(i->ARM64in.VUnaryV.dst);
UInt vN = qregNo(i->ARM64in.VUnaryV.arg);
@@ -5439,6 +5445,12 @@
case ARM64vecu_CNT8x16:
*p++ = X_3_8_5_6_5_5(X010, X01110001, X00000, X010110, vN, vD);
break;
+ case ARM64vecu_RBIT:
+ *p++ = X_3_8_5_6_5_5(X011, X01110011, X00000, X010110, vN, vD);
+ break;
+ case ARM64vecu_REV1616B:
+ *p++ = X_3_8_5_6_5_5(X010, X01110001, X00000, X000110, vN, vD);
+ break;
default:
goto bad;
}
Modified: trunk/priv/host_arm64_defs.h
==============================================================================
--- trunk/priv/host_arm64_defs.h (original)
+++ trunk/priv/host_arm64_defs.h Thu Jun 26 12:39:05 2014
@@ -360,6 +360,8 @@
ARM64vecu_CLS32x4, ARM64vecu_CLS16x8, ARM64vecu_CLS8x16,
ARM64vecu_CLZ32x4, ARM64vecu_CLZ16x8, ARM64vecu_CLZ8x16,
ARM64vecu_CNT8x16,
+ ARM64vecu_RBIT,
+ ARM64vecu_REV1616B,
ARM64vecu_INVALID
}
ARM64VecUnaryOp;
Modified: trunk/priv/host_arm64_isel.c
==============================================================================
--- trunk/priv/host_arm64_isel.c (original)
+++ trunk/priv/host_arm64_isel.c Thu Jun 26 12:39:05 2014
@@ -4417,6 +4417,8 @@
case Iop_Cls32x4: case Iop_Cls16x8: case Iop_Cls8x16:
case Iop_Clz32x4: case Iop_Clz16x8: case Iop_Clz8x16:
case Iop_Cnt8x16:
+ case Iop_Reverse1sIn8_x16:
+ case Iop_Reverse8sIn16_x8:
{
HReg res = newVRegV(env);
HReg arg = iselV128Expr(env, e->Iex.Unop.arg);
@@ -4438,6 +4440,8 @@
case Iop_Clz16x8: op = ARM64vecu_CLZ16x8; break;
case Iop_Clz8x16: op = ARM64vecu_CLZ8x16; break;
case Iop_Cnt8x16: op = ARM64vecu_CNT8x16; break;
+ case Iop_Reverse1sIn8_x16: op = ARM64vecu_RBIT; break;
+ case Iop_Reverse8sIn16_x8: op = ARM64vecu_REV1616B; break;
default: vassert(0);
}
addInstr(env, ARM64Instr_VUnaryV(op, res, arg));
Modified: trunk/priv/ir_defs.c
==============================================================================
--- trunk/priv/ir_defs.c (original)
+++ trunk/priv/ir_defs.c Thu Jun 26 12:39:05 2014
@@ -976,6 +976,7 @@
case Iop_Reverse8sIn64_x2: vex_printf("Reverse8sIn64_x2"); return;
case Iop_Reverse16sIn64_x2: vex_printf("Reverse16sIn64_x2"); return;
case Iop_Reverse32sIn64_x2: vex_printf("Reverse32sIn64_x2"); return;
+ case Iop_Reverse1sIn8_x16: vex_printf("Reverse1sIn8_x16"); return;
case Iop_F32ToFixed32Ux4_RZ: vex_printf("F32ToFixed32Ux4_RZ"); return;
case Iop_F32ToFixed32Sx4_RZ: vex_printf("F32ToFixed32Sx4_RZ"); return;
@@ -2912,6 +2913,7 @@
case Iop_Reverse32sIn64_x2:
case Iop_Reverse8sIn32_x4: case Iop_Reverse16sIn32_x4:
case Iop_Reverse8sIn16_x8:
+ case Iop_Reverse1sIn8_x16:
case Iop_Neg64Fx2: case Iop_Neg32Fx4:
case Iop_Abs8x16: case Iop_Abs16x8: case Iop_Abs32x4: case Iop_Abs64x2:
case Iop_CipherSV128:
Modified: trunk/pub/libvex_ir.h
==============================================================================
--- trunk/pub/libvex_ir.h (original)
+++ trunk/pub/libvex_ir.h Thu Jun 26 12:39:05 2014
@@ -1598,6 +1598,7 @@
Iop_Reverse8sIn16_x8,
Iop_Reverse8sIn32_x4, Iop_Reverse16sIn32_x4,
Iop_Reverse8sIn64_x2, Iop_Reverse16sIn64_x2, Iop_Reverse32sIn64_x2,
+ Iop_Reverse1sIn8_x16, /* Reverse bits in each byte lane. */
/* PERMUTING -- copy src bytes to dst,
as indexed by control vector bytes:
|
|
From: <sv...@va...> - 2014-06-26 11:44:54
|
Author: tom
Date: Thu Jun 26 11:44:46 2014
New Revision: 14109
Log:
Handle the HCIGETDEVLIST ioctl.
Based on patch from Tomasz Nowak via BZ#335034.
Modified:
trunk/NEWS
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/docs/internals/3_9_BUGSTATUS.txt
trunk/include/vki/vki-linux.h
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Thu Jun 26 11:44:46 2014
@@ -160,6 +160,7 @@
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
+335034 Unhandled ioctl: HCIGETDEVLIST
335155 vgdb, fix error print statement.
335262 arm64: movi 8bit version is not supported
335263 arm64: dmb instruction is not implemented
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c Thu Jun 26 11:44:46 2014
@@ -6903,6 +6903,17 @@
break;
# endif /* defined(VGPV_*_linux_android) */
+ case VKI_HCIGETDEVLIST:
+ if (ARG3) {
+ struct vki_hci_dev_list_req* dlr = (struct vki_hci_dev_list_req*)ARG3;
+ PRE_MEM_READ("ioctl(HCIGETDEVLIST)",
+ (Addr)ARG3, sizeof(struct vki_hci_dev_list_req));
+ PRE_MEM_WRITE("ioctl(HCIGETDEVLIST)",
+ (Addr)ARG3 + sizeof(struct vki_hci_dev_list_req),
+ dlr->dev_num * sizeof(struct vki_hci_dev_req));
+ }
+ break;
+
case VKI_HCIINQUIRY:
if (ARG3) {
struct vki_hci_inquiry_req* ir = (struct vki_hci_inquiry_req*)ARG3;
@@ -8005,6 +8016,14 @@
break;
# endif /* defined(VGPV_*_linux_android) */
+ case VKI_HCIGETDEVLIST:
+ if (ARG3) {
+ struct vki_hci_dev_list_req* dlr = (struct vki_hci_dev_list_req*)ARG3;
+ POST_MEM_WRITE((Addr)ARG3 + sizeof(struct vki_hci_dev_list_req),
+ dlr->dev_num * sizeof(struct vki_hci_dev_req));
+ }
+ break;
+
case VKI_HCIINQUIRY:
if (ARG3) {
struct vki_hci_inquiry_req* ir = (struct vki_hci_inquiry_req*)ARG3;
Modified: trunk/docs/internals/3_9_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_9_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_9_BUGSTATUS.txt Thu Jun 26 11:44:46 2014
@@ -168,7 +168,6 @@
========================================================================
========================================================================
-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
@@ -180,7 +179,6 @@
334802 valgrind does not always explain why a given option is bad
334834 PPC64 Little Endian support, patch 2
334836 PPC64 Little Endian support, patch 3 testcase fixes
-335034 Unhandled ioctl: HCIGETDEVLIST
335353 expected output of exp-sgcheck/tests/hackedbz2 mismatch with gcc 4.8.1
335441 unhandled ioctl 0x8905 (SIOCATMARK) when running wine under valgrind (patch)
249435 Analyzing wine programs with callgrind triggers a crash (NEEDS CLOSE)
Modified: trunk/include/vki/vki-linux.h
==============================================================================
--- trunk/include/vki/vki-linux.h (original)
+++ trunk/include/vki/vki-linux.h Thu Jun 26 11:44:46 2014
@@ -2956,6 +2956,17 @@
#define VKI_HCIDEVRESTAT _VKI_IOW('H', 204, int)
#define VKI_HCIGETDEVLIST _VKI_IOR('H', 210, int)
+
+struct vki_hci_dev_req {
+ __vki_u16 dev_id;
+ __vki_u32 dev_opt;
+};
+
+struct vki_hci_dev_list_req {
+ __vki_u16 dev_num;
+ struct vki_hci_dev_req dev_req[0]; /* hci_dev_req structures */
+};
+
#define VKI_HCIGETDEVINFO _VKI_IOR('H', 211, int)
#define VKI_HCIGETCONNLIST _VKI_IOR('H', 212, int)
#define VKI_HCIGETCONNINFO _VKI_IOR('H', 213, int)
|
|
From: <sv...@va...> - 2014-06-26 11:30:13
|
Author: florian
Date: Thu Jun 26 11:30:05 2014
New Revision: 14108
Log:
Fix a couple of format string mixups.
Modified:
trunk/memcheck/mc_errors.c
Modified: trunk/memcheck/mc_errors.c
==============================================================================
--- trunk/memcheck/mc_errors.c (original)
+++ trunk/memcheck/mc_errors.c Thu Jun 26 11:30:05 2014
@@ -609,7 +609,7 @@
extra->Err.Overlap.dst, extra->Err.Overlap.src );
} else {
emit( " <what>Source and destination overlap "
- "in %s(%#lx, %#lx, %lu)</what>\n",
+ "in %pS(%#lx, %#lx, %lu)</what>\n",
VG_(get_error_string)(err),
extra->Err.Overlap.dst, extra->Err.Overlap.src,
extra->Err.Overlap.szB );
@@ -617,7 +617,7 @@
VG_(pp_ExeContext)( VG_(get_error_where)(err) );
} else {
if (extra->Err.Overlap.szB == 0) {
- emit( "Source and destination overlap in %pS(%#lx, %#lx)\n",
+ emit( "Source and destination overlap in %s(%#lx, %#lx)\n",
VG_(get_error_string)(err),
extra->Err.Overlap.dst, extra->Err.Overlap.src );
} else {
|
|
From: <sv...@va...> - 2014-06-26 11:29:15
|
Author: tom
Date: Thu Jun 26 11:29:05 2014
New Revision: 14107
Log:
Add support for the SG_IO ioctl.
Patch from Daniel Kamil Kozar via BZ#333817.
Modified:
trunk/NEWS
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/docs/internals/3_9_BUGSTATUS.txt
trunk/include/vki/vki-linux.h
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Thu Jun 26 11:29:05 2014
@@ -154,6 +154,8 @@
333428 ldr.w pc [rD, #imm] instruction leads to assertion
333666 Recognize MPX instructions and bnd prefix.
333788 Valgrind does not support the CDROM_DISC_STATUS ioctl (has patch)
+333817 Valgrind reports the memory areas written to by the SG_IO
+ ioctl as untouched
334049 lzcnt fails silently (x86_32)
334705 sendmsg and recvmsg should guard against bogus msghdr fields.
334727 Build fails with -Werror=format-security
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c Thu Jun 26 11:29:05 2014
@@ -5761,7 +5761,15 @@
PRE_MEM_READ( "ioctl(SG_SET_COMMAND_Q)", ARG3, sizeof(int) );
break;
case VKI_SG_IO:
- PRE_MEM_WRITE( "ioctl(SG_IO)", ARG3, sizeof(vki_sg_io_hdr_t) );
+ PRE_MEM_READ( "ioctl(SG_IO)", ARG3, sizeof(vki_sg_io_hdr_t) );
+ {
+ vki_sg_io_hdr_t *sgio = (vki_sg_io_hdr_t*)ARG3;
+ PRE_MEM_READ( "ioctl(SG_IO)", (Addr)sgio->cmdp, sgio->cmd_len );
+ if ( sgio->dxfer_direction == VKI_SG_DXFER_TO_DEV ||
+ sgio->dxfer_direction == VKI_SG_DXFER_TO_FROM_DEV ) {
+ PRE_MEM_READ( "ioctl(SG_IO)", (Addr)sgio->dxferp, sgio->dxfer_len );
+ }
+ }
break;
case VKI_SG_GET_SCSI_ID:
PRE_MEM_WRITE( "ioctl(SG_GET_SCSI_ID)", ARG3, sizeof(vki_sg_scsi_id_t) );
@@ -7189,7 +7197,17 @@
case VKI_SG_SET_COMMAND_Q:
break;
case VKI_SG_IO:
- POST_MEM_WRITE(ARG3, sizeof(vki_sg_io_hdr_t));
+ {
+ vki_sg_io_hdr_t *sgio = (vki_sg_io_hdr_t*)ARG3;
+ if ( sgio->sbp ) {
+ POST_MEM_WRITE( (Addr)sgio->sbp, sgio->sb_len_wr );
+ }
+ if ( sgio->dxfer_direction == VKI_SG_DXFER_FROM_DEV ||
+ sgio->dxfer_direction == VKI_SG_DXFER_TO_FROM_DEV ) {
+ int transferred = sgio->dxfer_len - sgio->resid;
+ POST_MEM_WRITE( (Addr)sgio->dxferp, transferred );
+ }
+ }
break;
case VKI_SG_GET_SCSI_ID:
POST_MEM_WRITE(ARG3, sizeof(vki_sg_scsi_id_t));
Modified: trunk/docs/internals/3_9_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_9_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_9_BUGSTATUS.txt Thu Jun 26 11:29:05 2014
@@ -57,8 +57,6 @@
333434 In some weird corner case Valgrind cannot execute
executable files symlinked by /proc/self/fd (related to 331311?)
333051 handling hugepages (is largely broken)
-333817 Valgrind reports the memory areas written to by the SG_IO
- ioctl as untouched
334585 recvmmsg unhandled (+patch) (arm)
=== Debuginfo reader ===================================================
Modified: trunk/include/vki/vki-linux.h
==============================================================================
--- trunk/include/vki/vki-linux.h (original)
+++ trunk/include/vki/vki-linux.h Thu Jun 26 11:29:05 2014
@@ -1769,6 +1769,14 @@
unsigned int info; /* [o] auxiliary information */
} vki_sg_io_hdr_t; /* 64 bytes long (on i386) */
+#define VKI_SG_DXFER_NONE -1 /* e.g. a SCSI Test Unit Ready command */
+#define VKI_SG_DXFER_TO_DEV -2 /* e.g. a SCSI WRITE command */
+#define VKI_SG_DXFER_FROM_DEV -3 /* e.g. a SCSI READ command */
+#define VKI_SG_DXFER_TO_FROM_DEV -4 /* treated like SG_DXFER_FROM_DEV with the
+ additional property than during indirect
+ IO the user buffer is copied into the
+ kernel buffers before the transfer */
+
typedef struct vki_sg_scsi_id { /* used by SG_GET_SCSI_ID ioctl() */
int host_no; /* as in "scsi<n>" where 'n' is one of 0, 1, 2 etc */
int channel;
|
|
From: <sv...@va...> - 2014-06-26 11:12:09
|
Author: tom
Date: Thu Jun 26 11:11:56 2014
New Revision: 14106
Log:
Handle the CDROM_DISC_STATUS ioctl.
Patch from Daniel Kamil Kozar via BZ#333788.
Modified:
trunk/NEWS
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/docs/internals/3_9_BUGSTATUS.txt
trunk/include/vki/vki-linux.h
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Thu Jun 26 11:11:56 2014
@@ -153,6 +153,7 @@
333230 AAarch64 missing instruction encodings: dc, ic, dsb.
333428 ldr.w pc [rD, #imm] instruction leads to assertion
333666 Recognize MPX instructions and bnd prefix.
+333788 Valgrind does not support the CDROM_DISC_STATUS ioctl (has patch)
334049 lzcnt fails silently (x86_32)
334705 sendmsg and recvmsg should guard against bogus msghdr fields.
334727 Build fails with -Werror=format-security
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c Thu Jun 26 11:11:56 2014
@@ -5540,6 +5540,9 @@
/* SCSI no operand */
case VKI_SCSI_IOCTL_DOORLOCK:
case VKI_SCSI_IOCTL_DOORUNLOCK:
+
+ /* CDROM stuff. */
+ case VKI_CDROM_DISC_STATUS:
/* KVM ioctls that dont check for a numeric value as parameter */
case VKI_KVM_S390_ENABLE_SIE:
@@ -7499,6 +7502,8 @@
break;
/* CD ROM stuff (??) */
+ case VKI_CDROM_DISC_STATUS:
+ break;
case VKI_CDROMSUBCHNL:
POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_subchnl));
break;
Modified: trunk/docs/internals/3_9_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_9_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_9_BUGSTATUS.txt Thu Jun 26 11:11:56 2014
@@ -57,7 +57,6 @@
333434 In some weird corner case Valgrind cannot execute
executable files symlinked by /proc/self/fd (related to 331311?)
333051 handling hugepages (is largely broken)
-333788 Valgrind does not support the CDROM_DISC_STATUS ioctl (has patch)
333817 Valgrind reports the memory areas written to by the SG_IO
ioctl as untouched
334585 recvmmsg unhandled (+patch) (arm)
Modified: trunk/include/vki/vki-linux.h
==============================================================================
--- trunk/include/vki/vki-linux.h (original)
+++ trunk/include/vki/vki-linux.h Thu Jun 26 11:11:56 2014
@@ -1838,6 +1838,7 @@
(struct cdrom_read) */
#define VKI_CDROM_CLEAR_OPTIONS 0x5321 /* Clear behavior options */
#define VKI_CDROM_DRIVE_STATUS 0x5326 /* Get tray position, etc. */
+#define VKI_CDROM_DISC_STATUS 0x5327 /* get CD type information */
#define VKI_CDROM_GET_CAPABILITY 0x5331 /* get capabilities */
#define VKI_CDROM_SEND_PACKET 0x5393 /* send a packet to the drive */
|
|
From: <sv...@va...> - 2014-06-26 11:07:53
|
Author: tom
Date: Thu Jun 26 11:07:42 2014
New Revision: 14105
Log:
Remove bug closed by reporter
Modified:
trunk/docs/internals/3_9_BUGSTATUS.txt
Modified: trunk/docs/internals/3_9_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_9_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_9_BUGSTATUS.txt Thu Jun 26 11:07:42 2014
@@ -56,7 +56,6 @@
Probable wontfix
333434 In some weird corner case Valgrind cannot execute
executable files symlinked by /proc/self/fd (related to 331311?)
-331829 Unexpected ioctl opcode sign extension
333051 handling hugepages (is largely broken)
333788 Valgrind does not support the CDROM_DISC_STATUS ioctl (has patch)
333817 Valgrind reports the memory areas written to by the SG_IO
|
|
From: <sv...@va...> - 2014-06-26 11:03:42
|
Author: tom
Date: Thu Jun 26 11:03:32 2014
New Revision: 14104
Log:
Add support for TIOCNOTTY ioctl. BZ#331476.
Modified:
trunk/NEWS
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/docs/internals/3_9_BUGSTATUS.txt
trunk/include/vki/vki-amd64-linux.h
trunk/include/vki/vki-arm-linux.h
trunk/include/vki/vki-arm64-linux.h
trunk/include/vki/vki-ppc32-linux.h
trunk/include/vki/vki-ppc64-linux.h
trunk/include/vki/vki-s390x-linux.h
trunk/include/vki/vki-x86-linux.h
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Thu Jun 26 11:03:32 2014
@@ -133,6 +133,7 @@
331305 configure uses bash specific syntax
331337 s390x WARNING: unhandled syscall: 326 (dup3)
331380 Syscall param timer_create(evp) points to uninitialised byte(s)
+331476 Patch to handle ioctl 0x5422 on Linux (x86 and amd64)
331830 ppc64: WARNING: unhandled syscall: 96/97
331839 drd/tests/sem_open specifies invalid semaphore name
331847 outcome of drd/tests/thread_name is nondeterministic
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c Thu Jun 26 11:03:32 2014
@@ -5519,6 +5519,7 @@
/* asm-generic/ioctls.h */
case VKI_FIOCLEX:
case VKI_FIONCLEX:
+ case VKI_TIOCNOTTY:
/* linux/soundcard interface (ALSA) */
case VKI_SNDRV_PCM_IOCTL_HW_FREE:
@@ -7164,6 +7165,8 @@
break;
case VKI_FIOCLEX:
break;
+ case VKI_TIOCNOTTY:
+ break;
case VKI_FIOASYNC:
break;
case VKI_FIONREAD: /* identical to SIOCINQ */
Modified: trunk/docs/internals/3_9_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_9_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_9_BUGSTATUS.txt Thu Jun 26 11:03:32 2014
@@ -56,7 +56,6 @@
Probable wontfix
333434 In some weird corner case Valgrind cannot execute
executable files symlinked by /proc/self/fd (related to 331311?)
-331476 Patch to handle ioctl 0x5422 on Linux (x86 and amd64) (landable?)
331829 Unexpected ioctl opcode sign extension
333051 handling hugepages (is largely broken)
333788 Valgrind does not support the CDROM_DISC_STATUS ioctl (has patch)
Modified: trunk/include/vki/vki-amd64-linux.h
==============================================================================
--- trunk/include/vki/vki-amd64-linux.h (original)
+++ trunk/include/vki/vki-amd64-linux.h Thu Jun 26 11:03:32 2014
@@ -461,6 +461,7 @@
#define VKI_FIONREAD 0x541B
#define VKI_TIOCLINUX 0x541C
#define VKI_FIONBIO 0x5421
+#define VKI_TIOCNOTTY 0x5422
#define VKI_TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */
#define VKI_TIOCGPTN _VKI_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
#define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int) /* Lock/unlock Pty */
Modified: trunk/include/vki/vki-arm-linux.h
==============================================================================
--- trunk/include/vki/vki-arm-linux.h (original)
+++ trunk/include/vki/vki-arm-linux.h Thu Jun 26 11:03:32 2014
@@ -502,6 +502,7 @@
#define VKI_FIONREAD 0x541B
#define VKI_TIOCLINUX 0x541C
#define VKI_FIONBIO 0x5421
+#define VKI_TIOCNOTTY 0x5422
#define VKI_TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */
#define VKI_TIOCGPTN _VKI_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
#define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int) /* Lock/unlock Pty */
Modified: trunk/include/vki/vki-arm64-linux.h
==============================================================================
--- trunk/include/vki/vki-arm64-linux.h (original)
+++ trunk/include/vki/vki-arm64-linux.h Thu Jun 26 11:03:32 2014
@@ -434,6 +434,7 @@
#define VKI_FIONREAD 0x541B
#define VKI_TIOCLINUX 0x541C
#define VKI_FIONBIO 0x5421
+#define VKI_TIOCNOTTY 0x5422
#define VKI_TCSBRKP 0x5425
#define VKI_TIOCGPTN _VKI_IOR('T',0x30, unsigned int)
#define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int)
Modified: trunk/include/vki/vki-ppc32-linux.h
==============================================================================
--- trunk/include/vki/vki-ppc32-linux.h (original)
+++ trunk/include/vki/vki-ppc32-linux.h Thu Jun 26 11:03:32 2014
@@ -632,7 +632,7 @@
//# define VKI_TIOCPKT_NOSTOP 16
//# define VKI_TIOCPKT_DOSTOP 32
-//#define VKI_TIOCNOTTY 0x5422
+#define VKI_TIOCNOTTY 0x5422
//#define VKI_TIOCSETD 0x5423
//#define VKI_TIOCGETD 0x5424
#define VKI_TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */
Modified: trunk/include/vki/vki-ppc64-linux.h
==============================================================================
--- trunk/include/vki/vki-ppc64-linux.h (original)
+++ trunk/include/vki/vki-ppc64-linux.h Thu Jun 26 11:03:32 2014
@@ -631,6 +631,7 @@
#define VKI_FIONREAD _VKI_IOR('f', 127, int)
#define VKI_TIOCLINUX 0x541C
#define VKI_FIONBIO _VKI_IOW('f', 126, int)
+#define VKI_TIOCNOTTY 0x5422
#define VKI_TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */
#define VKI_TIOCGPTN _VKI_IOR('T',0x30, unsigned int)
/* Get Pty Number (of pty-mux device) */
Modified: trunk/include/vki/vki-s390x-linux.h
==============================================================================
--- trunk/include/vki/vki-s390x-linux.h (original)
+++ trunk/include/vki/vki-s390x-linux.h Thu Jun 26 11:03:32 2014
@@ -597,6 +597,7 @@
#define VKI_TIOCLINUX 0x541C
#define VKI_FIONBIO 0x5421
+#define VKI_TIOCNOTTY 0x5422
#define VKI_TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */
Modified: trunk/include/vki/vki-x86-linux.h
==============================================================================
--- trunk/include/vki/vki-x86-linux.h (original)
+++ trunk/include/vki/vki-x86-linux.h Thu Jun 26 11:03:32 2014
@@ -540,6 +540,7 @@
#define VKI_FIONREAD 0x541B
#define VKI_TIOCLINUX 0x541C
#define VKI_FIONBIO 0x5421
+#define VKI_TIOCNOTTY 0x5422
#define VKI_TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */
#define VKI_TIOCGPTN _VKI_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
#define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int) /* Lock/unlock Pty */
|
|
From: <sv...@va...> - 2014-06-26 10:51:13
|
Author: sewardj
Date: Thu Jun 26 10:51:03 2014
New Revision: 14103
Log:
Track vex r2890 (renaming of vector subparts-of-lanes-reversal IROps)
Modified:
trunk/memcheck/mc_translate.c
trunk/memcheck/tests/vbit-test/irops.c
trunk/memcheck/tests/vbit-test/util.c
Modified: trunk/memcheck/mc_translate.c
==============================================================================
--- trunk/memcheck/mc_translate.c (original)
+++ trunk/memcheck/mc_translate.c Thu Jun 26 10:51:03 2014
@@ -4048,12 +4048,12 @@
case Iop_Dup8x16:
case Iop_Dup16x8:
case Iop_Dup32x4:
- case Iop_Reverse16_8x16:
- case Iop_Reverse32_8x16:
- case Iop_Reverse32_16x8:
- case Iop_Reverse64_8x16:
- case Iop_Reverse64_16x8:
- case Iop_Reverse64_32x4:
+ case Iop_Reverse8sIn16_x8:
+ case Iop_Reverse8sIn32_x4:
+ case Iop_Reverse16sIn32_x4:
+ case Iop_Reverse8sIn64_x2:
+ case Iop_Reverse16sIn64_x2:
+ case Iop_Reverse32sIn64_x2:
case Iop_V256toV128_1: case Iop_V256toV128_0:
case Iop_ZeroHI64ofV128:
case Iop_ZeroHI96ofV128:
@@ -4134,12 +4134,12 @@
case Iop_Dup8x8:
case Iop_Dup16x4:
case Iop_Dup32x2:
- case Iop_Reverse16_8x8:
- case Iop_Reverse32_8x8:
- case Iop_Reverse32_16x4:
- case Iop_Reverse64_8x8:
- case Iop_Reverse64_16x4:
- case Iop_Reverse64_32x2:
+ case Iop_Reverse8sIn16_x4:
+ case Iop_Reverse8sIn32_x2:
+ case Iop_Reverse16sIn32_x2:
+ case Iop_Reverse8sIn64_x1:
+ case Iop_Reverse16sIn64_x1:
+ case Iop_Reverse32sIn64_x1:
case Iop_V256to64_0: case Iop_V256to64_1:
case Iop_V256to64_2: case Iop_V256to64_3:
return assignNew('V', mce, Ity_I64, unop(op, vatom));
Modified: trunk/memcheck/tests/vbit-test/irops.c
==============================================================================
--- trunk/memcheck/tests/vbit-test/irops.c (original)
+++ trunk/memcheck/tests/vbit-test/irops.c Thu Jun 26 10:51:03 2014
@@ -466,12 +466,12 @@
{ DEFOP(Iop_Dup16x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Dup32x2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Extract64, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Reverse16_8x8, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Reverse32_8x8, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Reverse32_16x4, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Reverse64_8x8, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Reverse64_16x4, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Reverse64_32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse8sIn16_x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse8sIn32_x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse16sIn32_x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse8sIn64_x1, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse16sIn64_x1, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse32sIn64_x1, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Perm8x8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_GetMSBs8x8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Recip32x2, UNDEF_UNKNOWN), },
@@ -871,12 +871,12 @@
{ DEFOP(Iop_Dup16x8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Dup32x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_ExtractV128, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Reverse16_8x16, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Reverse32_8x16, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Reverse32_16x8, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Reverse64_8x16, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Reverse64_16x8, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Reverse64_32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse8sIn16_x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse8sIn32_x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse16sIn32_x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse8sIn64_x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse16sIn64_x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse32sIn64_x2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Perm8x16, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Perm32x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_GetMSBs8x16, UNDEF_UNKNOWN), },
Modified: trunk/memcheck/tests/vbit-test/util.c
==============================================================================
--- trunk/memcheck/tests/vbit-test/util.c (original)
+++ trunk/memcheck/tests/vbit-test/util.c Thu Jun 26 10:51:03 2014
@@ -348,9 +348,10 @@
case Iop_Cls8x8: case Iop_Cls16x4: case Iop_Cls32x2:
case Iop_PwAddL8Ux8: case Iop_PwAddL16Ux4: case Iop_PwAddL32Ux2:
case Iop_PwAddL8Sx8: case Iop_PwAddL16Sx4: case Iop_PwAddL32Sx2:
- case Iop_Reverse64_8x8: case Iop_Reverse64_16x4: case Iop_Reverse64_32x2:
- case Iop_Reverse32_8x8: case Iop_Reverse32_16x4:
- case Iop_Reverse16_8x8:
+ case Iop_Reverse8sIn64_x1: case Iop_Reverse16sIn64_x1:
+ case Iop_Reverse32sIn64_x1:
+ case Iop_Reverse8sIn32_x2: case Iop_Reverse16sIn32_x2:
+ case Iop_Reverse8sIn16_x4:
case Iop_FtoI32Sx2_RZ: case Iop_FtoI32Ux2_RZ:
case Iop_I32StoFx2: case Iop_I32UtoFx2:
case Iop_Recip32x2: case Iop_Recip32Fx2:
@@ -717,9 +718,10 @@
case Iop_Cls8x16: case Iop_Cls16x8: case Iop_Cls32x4:
case Iop_PwAddL8Ux16: case Iop_PwAddL16Ux8: case Iop_PwAddL32Ux4:
case Iop_PwAddL8Sx16: case Iop_PwAddL16Sx8: case Iop_PwAddL32Sx4:
- case Iop_Reverse64_8x16: case Iop_Reverse64_16x8: case Iop_Reverse64_32x4:
- case Iop_Reverse32_8x16: case Iop_Reverse32_16x8:
- case Iop_Reverse16_8x16:
+ case Iop_Reverse8sIn64_x2: case Iop_Reverse16sIn64_x2:
+ case Iop_Reverse32sIn64_x2:
+ case Iop_Reverse8sIn32_x4: case Iop_Reverse16sIn32_x4:
+ case Iop_Reverse8sIn16_x8:
case Iop_Neg32Fx4:
case Iop_Abs8x16: case Iop_Abs16x8: case Iop_Abs32x4:
UNARY(Ity_V128, Ity_V128);
|
|
From: <sv...@va...> - 2014-06-26 10:49:46
|
Author: sewardj
Date: Thu Jun 26 10:49:33 2014
New Revision: 2890
Log:
Rename the vector subparts-of-lanes-reversal IROps to names
that are easier to understand. No functional change.
Modified:
trunk/priv/guest_arm_toIR.c
trunk/priv/host_arm_isel.c
trunk/priv/ir_defs.c
trunk/pub/libvex_ir.h
Modified: trunk/priv/guest_arm_toIR.c
==============================================================================
--- trunk/priv/guest_arm_toIR.c (original)
+++ trunk/priv/guest_arm_toIR.c Thu Jun 26 10:49:33 2014
@@ -6646,13 +6646,13 @@
IROp op;
switch (size) {
case 0:
- op = Q ? Iop_Reverse64_8x16 : Iop_Reverse64_8x8;
+ op = Q ? Iop_Reverse8sIn64_x2 : Iop_Reverse8sIn64_x1;
break;
case 1:
- op = Q ? Iop_Reverse64_16x8 : Iop_Reverse64_16x4;
+ op = Q ? Iop_Reverse16sIn64_x2 : Iop_Reverse16sIn64_x1;
break;
case 2:
- op = Q ? Iop_Reverse64_32x4 : Iop_Reverse64_32x2;
+ op = Q ? Iop_Reverse32sIn64_x2 : Iop_Reverse32sIn64_x1;
break;
case 3:
return False;
@@ -6669,10 +6669,10 @@
IROp op;
switch (size) {
case 0:
- op = Q ? Iop_Reverse32_8x16 : Iop_Reverse32_8x8;
+ op = Q ? Iop_Reverse8sIn32_x4 : Iop_Reverse8sIn32_x2;
break;
case 1:
- op = Q ? Iop_Reverse32_16x8 : Iop_Reverse32_16x4;
+ op = Q ? Iop_Reverse16sIn32_x4 : Iop_Reverse16sIn32_x2;
break;
case 2:
case 3:
@@ -6690,7 +6690,7 @@
IROp op;
switch (size) {
case 0:
- op = Q ? Iop_Reverse16_8x16 : Iop_Reverse16_8x8;
+ op = Q ? Iop_Reverse8sIn16_x8 : Iop_Reverse8sIn16_x4;
break;
case 1:
case 2:
Modified: trunk/priv/host_arm_isel.c
==============================================================================
--- trunk/priv/host_arm_isel.c (original)
+++ trunk/priv/host_arm_isel.c Thu Jun 26 10:49:33 2014
@@ -3391,37 +3391,37 @@
addInstr(env, ARMInstr_NUnary(ARMneon_ABS, res, arg, size, False));
return res;
}
- case Iop_Reverse64_8x8:
- case Iop_Reverse64_16x4:
- case Iop_Reverse64_32x2: {
+ case Iop_Reverse8sIn64_x1:
+ case Iop_Reverse16sIn64_x1:
+ case Iop_Reverse32sIn64_x1: {
HReg res = newVRegD(env);
HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
UInt size = 0;
switch(e->Iex.Binop.op) {
- case Iop_Reverse64_8x8: size = 0; break;
- case Iop_Reverse64_16x4: size = 1; break;
- case Iop_Reverse64_32x2: size = 2; break;
+ case Iop_Reverse8sIn64_x1: size = 0; break;
+ case Iop_Reverse16sIn64_x1: size = 1; break;
+ case Iop_Reverse32sIn64_x1: size = 2; break;
default: vassert(0);
}
addInstr(env, ARMInstr_NUnary(ARMneon_REV64,
res, arg, size, False));
return res;
}
- case Iop_Reverse32_8x8:
- case Iop_Reverse32_16x4: {
+ case Iop_Reverse8sIn32_x2:
+ case Iop_Reverse16sIn32_x2: {
HReg res = newVRegD(env);
HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
UInt size = 0;
switch(e->Iex.Binop.op) {
- case Iop_Reverse32_8x8: size = 0; break;
- case Iop_Reverse32_16x4: size = 1; break;
+ case Iop_Reverse8sIn32_x2: size = 0; break;
+ case Iop_Reverse16sIn32_x2: size = 1; break;
default: vassert(0);
}
addInstr(env, ARMInstr_NUnary(ARMneon_REV32,
res, arg, size, False));
return res;
}
- case Iop_Reverse16_8x8: {
+ case Iop_Reverse8sIn16_x4: {
HReg res = newVRegD(env);
HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
UInt size = 0;
@@ -4021,37 +4021,37 @@
addInstr(env, ARMInstr_NUnary(ARMneon_ABS, res, arg, size, True));
return res;
}
- case Iop_Reverse64_8x16:
- case Iop_Reverse64_16x8:
- case Iop_Reverse64_32x4: {
+ case Iop_Reverse8sIn64_x2:
+ case Iop_Reverse16sIn64_x2:
+ case Iop_Reverse32sIn64_x2: {
HReg res = newVRegV(env);
HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
UInt size = 0;
switch(e->Iex.Binop.op) {
- case Iop_Reverse64_8x16: size = 0; break;
- case Iop_Reverse64_16x8: size = 1; break;
- case Iop_Reverse64_32x4: size = 2; break;
+ case Iop_Reverse8sIn64_x2: size = 0; break;
+ case Iop_Reverse16sIn64_x2: size = 1; break;
+ case Iop_Reverse32sIn64_x2: size = 2; break;
default: vassert(0);
}
addInstr(env, ARMInstr_NUnary(ARMneon_REV64,
res, arg, size, True));
return res;
}
- case Iop_Reverse32_8x16:
- case Iop_Reverse32_16x8: {
+ case Iop_Reverse8sIn32_x4:
+ case Iop_Reverse16sIn32_x4: {
HReg res = newVRegV(env);
HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
UInt size = 0;
switch(e->Iex.Binop.op) {
- case Iop_Reverse32_8x16: size = 0; break;
- case Iop_Reverse32_16x8: size = 1; break;
+ case Iop_Reverse8sIn32_x4: size = 0; break;
+ case Iop_Reverse16sIn32_x4: size = 1; break;
default: vassert(0);
}
addInstr(env, ARMInstr_NUnary(ARMneon_REV32,
res, arg, size, True));
return res;
}
- case Iop_Reverse16_8x16: {
+ case Iop_Reverse8sIn16_x8: {
HReg res = newVRegV(env);
HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
UInt size = 0;
Modified: trunk/priv/ir_defs.c
==============================================================================
--- trunk/priv/ir_defs.c (original)
+++ trunk/priv/ir_defs.c Thu Jun 26 10:49:33 2014
@@ -579,12 +579,12 @@
case Iop_Sal32x2: vex_printf("Sal32x2"); return;
case Iop_Sal64x1: vex_printf("Sal64x1"); return;
case Iop_Perm8x8: vex_printf("Perm8x8"); return;
- case Iop_Reverse16_8x8: vex_printf("Reverse16_8x8"); return;
- case Iop_Reverse32_8x8: vex_printf("Reverse32_8x8"); return;
- case Iop_Reverse32_16x4: vex_printf("Reverse32_16x4"); return;
- case Iop_Reverse64_8x8: vex_printf("Reverse64_8x8"); return;
- case Iop_Reverse64_16x4: vex_printf("Reverse64_16x4"); return;
- case Iop_Reverse64_32x2: vex_printf("Reverse64_32x2"); return;
+ case Iop_Reverse8sIn16_x4: vex_printf("Reverse8sIn16_x4"); return;
+ case Iop_Reverse8sIn32_x2: vex_printf("Reverse8sIn32_x2"); return;
+ case Iop_Reverse16sIn32_x2: vex_printf("Reverse16sIn32_x2"); return;
+ case Iop_Reverse8sIn64_x1: vex_printf("Reverse8sIn64_x1"); return;
+ case Iop_Reverse16sIn64_x1: vex_printf("Reverse16sIn64_x1"); return;
+ case Iop_Reverse32sIn64_x1: vex_printf("Reverse32sIn64_x1"); return;
case Iop_Abs32Fx2: vex_printf("Abs32Fx2"); return;
case Iop_GetMSBs8x8: vex_printf("GetMSBs8x8"); return;
case Iop_GetMSBs8x16: vex_printf("GetMSBs8x16"); return;
@@ -970,12 +970,12 @@
case Iop_Perm8x16: vex_printf("Perm8x16"); return;
case Iop_Perm32x4: vex_printf("Perm32x4"); return;
- case Iop_Reverse16_8x16: vex_printf("Reverse16_8x16"); return;
- case Iop_Reverse32_8x16: vex_printf("Reverse32_8x16"); return;
- case Iop_Reverse32_16x8: vex_printf("Reverse32_16x8"); return;
- case Iop_Reverse64_8x16: vex_printf("Reverse64_8x16"); return;
- case Iop_Reverse64_16x8: vex_printf("Reverse64_16x8"); return;
- case Iop_Reverse64_32x4: vex_printf("Reverse64_32x4"); return;
+ case Iop_Reverse8sIn16_x8: vex_printf("Reverse8sIn16_x8"); return;
+ case Iop_Reverse8sIn32_x4: vex_printf("Reverse8sIn32_x4"); return;
+ case Iop_Reverse16sIn32_x4: vex_printf("Reverse16sIn32_x4"); return;
+ case Iop_Reverse8sIn64_x2: vex_printf("Reverse8sIn64_x2"); return;
+ case Iop_Reverse16sIn64_x2: vex_printf("Reverse16sIn64_x2"); return;
+ case Iop_Reverse32sIn64_x2: vex_printf("Reverse32sIn64_x2"); return;
case Iop_F32ToFixed32Ux4_RZ: vex_printf("F32ToFixed32Ux4_RZ"); return;
case Iop_F32ToFixed32Sx4_RZ: vex_printf("F32ToFixed32Sx4_RZ"); return;
@@ -2522,9 +2522,10 @@
case Iop_Cls8x8: case Iop_Cls16x4: case Iop_Cls32x2:
case Iop_PwAddL8Ux8: case Iop_PwAddL16Ux4: case Iop_PwAddL32Ux2:
case Iop_PwAddL8Sx8: case Iop_PwAddL16Sx4: case Iop_PwAddL32Sx2:
- case Iop_Reverse64_8x8: case Iop_Reverse64_16x4: case Iop_Reverse64_32x2:
- case Iop_Reverse32_8x8: case Iop_Reverse32_16x4:
- case Iop_Reverse16_8x8:
+ case Iop_Reverse8sIn64_x1: case Iop_Reverse16sIn64_x1:
+ case Iop_Reverse32sIn64_x1:
+ case Iop_Reverse8sIn32_x2: case Iop_Reverse16sIn32_x2:
+ case Iop_Reverse8sIn16_x4:
case Iop_FtoI32Sx2_RZ: case Iop_FtoI32Ux2_RZ:
case Iop_I32StoFx2: case Iop_I32UtoFx2:
case Iop_Recip32x2: case Iop_Recip32Fx2:
@@ -2907,9 +2908,10 @@
case Iop_Cls8x16: case Iop_Cls16x8: case Iop_Cls32x4:
case Iop_PwAddL8Ux16: case Iop_PwAddL16Ux8: case Iop_PwAddL32Ux4:
case Iop_PwAddL8Sx16: case Iop_PwAddL16Sx8: case Iop_PwAddL32Sx4:
- case Iop_Reverse64_8x16: case Iop_Reverse64_16x8: case Iop_Reverse64_32x4:
- case Iop_Reverse32_8x16: case Iop_Reverse32_16x8:
- case Iop_Reverse16_8x16:
+ case Iop_Reverse8sIn64_x2: case Iop_Reverse16sIn64_x2:
+ case Iop_Reverse32sIn64_x2:
+ case Iop_Reverse8sIn32_x4: case Iop_Reverse16sIn32_x4:
+ case Iop_Reverse8sIn16_x8:
case Iop_Neg64Fx2: case Iop_Neg32Fx4:
case Iop_Abs8x16: case Iop_Abs16x8: case Iop_Abs32x4: case Iop_Abs64x2:
case Iop_CipherSV128:
Modified: trunk/pub/libvex_ir.h
==============================================================================
--- trunk/pub/libvex_ir.h (original)
+++ trunk/pub/libvex_ir.h Thu Jun 26 10:49:33 2014
@@ -984,15 +984,16 @@
/* Note: the arm back-end handles only constant third argumnet. */
Iop_Extract64,
- /* REVERSE the order of elements in each Half-words, Words,
- Double-words */
+ /* REVERSE the order of chunks in vector lanes. Chunks must be
+ smaller than the vector lanes (obviously) and so may be 8-,
+ 16- and 32-bit in size. */
/* Examples:
- Reverse16_8x8([a,b,c,d,e,f,g,h]) = [b,a,d,c,f,e,h,g]
- Reverse32_8x8([a,b,c,d,e,f,g,h]) = [d,c,b,a,h,g,f,e]
- Reverse64_8x8([a,b,c,d,e,f,g,h]) = [h,g,f,e,d,c,b,a] */
- Iop_Reverse16_8x8,
- Iop_Reverse32_8x8, Iop_Reverse32_16x4,
- Iop_Reverse64_8x8, Iop_Reverse64_16x4, Iop_Reverse64_32x2,
+ Reverse8sIn16_x4([a,b,c,d,e,f,g,h]) = [b,a,d,c,f,e,h,g]
+ Reverse8sIn32_x2([a,b,c,d,e,f,g,h]) = [d,c,b,a,h,g,f,e]
+ Reverse8sIn64_x1([a,b,c,d,e,f,g,h]) = [h,g,f,e,d,c,b,a] */
+ Iop_Reverse8sIn16_x4,
+ Iop_Reverse8sIn32_x2, Iop_Reverse16sIn32_x2,
+ Iop_Reverse8sIn64_x1, Iop_Reverse16sIn64_x1, Iop_Reverse32sIn64_x1,
/* PERMUTING -- copy src bytes to dst,
as indexed by control vector bytes:
@@ -1590,14 +1591,13 @@
/* Note: the ARM back end handles only constant arg3 in this operation. */
Iop_ExtractV128,
- /* REVERSE the order of elements in each Half-words, Words,
- Double-words */
- /* Examples:
- Reverse32_16x8([a,b,c,d,e,f,g,h]) = [b,a,d,c,f,e,h,g]
- Reverse64_16x8([a,b,c,d,e,f,g,h]) = [d,c,b,a,h,g,f,e] */
- Iop_Reverse16_8x16,
- Iop_Reverse32_8x16, Iop_Reverse32_16x8,
- Iop_Reverse64_8x16, Iop_Reverse64_16x8, Iop_Reverse64_32x4,
+ /* REVERSE the order of chunks in vector lanes. Chunks must be
+ smaller than the vector lanes (obviously) and so may be 8-,
+ 16- and 32-bit in size. See definitions of 64-bit SIMD
+ versions above for examples. */
+ Iop_Reverse8sIn16_x8,
+ Iop_Reverse8sIn32_x4, Iop_Reverse16sIn32_x4,
+ Iop_Reverse8sIn64_x2, Iop_Reverse16sIn64_x2, Iop_Reverse32sIn64_x2,
/* PERMUTING -- copy src bytes to dst,
as indexed by control vector bytes:
|
|
From: <sv...@va...> - 2014-06-26 08:22:09
|
Author: sewardj
Date: Thu Jun 26 08:22:01 2014
New Revision: 14102
Log:
Track vex r2889 (rename vector Cls/Clz primops)
Modified:
trunk/memcheck/mc_translate.c
trunk/memcheck/tests/vbit-test/irops.c
trunk/memcheck/tests/vbit-test/util.c
Modified: trunk/memcheck/mc_translate.c
==============================================================================
--- trunk/memcheck/mc_translate.c (original)
+++ trunk/memcheck/mc_translate.c Thu Jun 26 08:22:01 2014
@@ -4195,41 +4195,41 @@
case Iop_CmpNEZ8x8:
case Iop_Cnt8x8:
- case Iop_Clz8Sx8:
- case Iop_Cls8Sx8:
+ case Iop_Clz8x8:
+ case Iop_Cls8x8:
case Iop_Abs8x8:
return mkPCast8x8(mce, vatom);
case Iop_CmpNEZ8x16:
case Iop_Cnt8x16:
- case Iop_Clz8Sx16:
- case Iop_Cls8Sx16:
+ case Iop_Clz8x16:
+ case Iop_Cls8x16:
case Iop_Abs8x16:
return mkPCast8x16(mce, vatom);
case Iop_CmpNEZ16x4:
- case Iop_Clz16Sx4:
- case Iop_Cls16Sx4:
+ case Iop_Clz16x4:
+ case Iop_Cls16x4:
case Iop_Abs16x4:
return mkPCast16x4(mce, vatom);
case Iop_CmpNEZ16x8:
- case Iop_Clz16Sx8:
- case Iop_Cls16Sx8:
+ case Iop_Clz16x8:
+ case Iop_Cls16x8:
case Iop_Abs16x8:
return mkPCast16x8(mce, vatom);
case Iop_CmpNEZ32x2:
- case Iop_Clz32Sx2:
- case Iop_Cls32Sx2:
+ case Iop_Clz32x2:
+ case Iop_Cls32x2:
case Iop_FtoI32Ux2_RZ:
case Iop_FtoI32Sx2_RZ:
case Iop_Abs32x2:
return mkPCast32x2(mce, vatom);
case Iop_CmpNEZ32x4:
- case Iop_Clz32Sx4:
- case Iop_Cls32Sx4:
+ case Iop_Clz32x4:
+ case Iop_Cls32x4:
case Iop_FtoI32Ux4_RZ:
case Iop_FtoI32Sx4_RZ:
case Iop_Abs32x4:
Modified: trunk/memcheck/tests/vbit-test/irops.c
==============================================================================
--- trunk/memcheck/tests/vbit-test/irops.c (original)
+++ trunk/memcheck/tests/vbit-test/irops.c Thu Jun 26 08:22:01 2014
@@ -389,12 +389,12 @@
{ DEFOP(Iop_CmpGT16Sx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_CmpGT32Sx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Cnt8x8, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Clz8Sx8, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Clz16Sx4, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Clz32Sx2, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Cls8Sx8, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Cls16Sx4, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Cls32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Clz8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Clz16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Clz32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Cls8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Cls16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Cls32x2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Shl8x8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Shl16x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Shl32x2, UNDEF_UNKNOWN), },
@@ -755,13 +755,13 @@
{ DEFOP(Iop_CmpGT32Ux4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_CmpGT64Ux2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Cnt8x16, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Clz8Sx16, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Clz16Sx8, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Clz32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Clz8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Clz16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Clz32x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Clz64x2, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Cls8Sx16, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Cls16Sx8, UNDEF_UNKNOWN), },
- { DEFOP(Iop_Cls32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Cls8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Cls16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Cls32x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_ShlN8x16, UNDEF_UNKNOWN), },
{ DEFOP(Iop_ShlN16x8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_ShlN32x4, UNDEF_UNKNOWN), },
Modified: trunk/memcheck/tests/vbit-test/util.c
==============================================================================
--- trunk/memcheck/tests/vbit-test/util.c (original)
+++ trunk/memcheck/tests/vbit-test/util.c Thu Jun 26 08:22:01 2014
@@ -344,8 +344,8 @@
case Iop_Not64:
case Iop_CmpNEZ32x2: case Iop_CmpNEZ16x4: case Iop_CmpNEZ8x8:
case Iop_Cnt8x8:
- case Iop_Clz8Sx8: case Iop_Clz16Sx4: case Iop_Clz32Sx2:
- case Iop_Cls8Sx8: case Iop_Cls16Sx4: case Iop_Cls32Sx2:
+ case Iop_Clz8x8: case Iop_Clz16x4: case Iop_Clz32x2:
+ case Iop_Cls8x8: case Iop_Cls16x4: case Iop_Cls32x2:
case Iop_PwAddL8Ux8: case Iop_PwAddL16Ux4: case Iop_PwAddL32Ux2:
case Iop_PwAddL8Sx8: case Iop_PwAddL16Sx4: case Iop_PwAddL32Sx2:
case Iop_Reverse64_8x8: case Iop_Reverse64_16x4: case Iop_Reverse64_32x2:
@@ -713,8 +713,8 @@
case Iop_CmpNEZ8x16: case Iop_CmpNEZ16x8:
case Iop_CmpNEZ32x4: case Iop_CmpNEZ64x2:
case Iop_Cnt8x16:
- case Iop_Clz8Sx16: case Iop_Clz16Sx8: case Iop_Clz32Sx4:
- case Iop_Cls8Sx16: case Iop_Cls16Sx8: case Iop_Cls32Sx4:
+ case Iop_Clz8x16: case Iop_Clz16x8: case Iop_Clz32x4:
+ case Iop_Cls8x16: case Iop_Cls16x8: case Iop_Cls32x4:
case Iop_PwAddL8Ux16: case Iop_PwAddL16Ux8: case Iop_PwAddL32Ux4:
case Iop_PwAddL8Sx16: case Iop_PwAddL16Sx8: case Iop_PwAddL32Sx4:
case Iop_Reverse64_8x16: case Iop_Reverse64_16x8: case Iop_Reverse64_32x4:
|
Author: sewardj
Date: Thu Jun 26 08:18:08 2014
New Revision: 2889
Log:
The vector versions of the count leading zeros/sign bits primops
(Iop_Cls* and Iop_Clz*) misleadingly imply a signedness in the
incoming lanes. Rename them to fix this. Fixes #326026.
Modified:
trunk/priv/guest_arm64_toIR.c
trunk/priv/guest_arm_toIR.c
trunk/priv/guest_ppc_toIR.c
trunk/priv/host_arm64_isel.c
trunk/priv/host_arm_isel.c
trunk/priv/host_ppc_isel.c
trunk/priv/ir_defs.c
trunk/pub/libvex_ir.h
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Thu Jun 26 08:18:08 2014
@@ -7468,8 +7468,8 @@
/* -------- 0,xx,00100: CLS std6_std6 -------- */
/* -------- 1,xx,00100: CLZ std6_std6 -------- */
if (size == X11) return False; // no 1d or 2d cases
- const IROp opsCLS[3] = { Iop_Cls8Sx16, Iop_Cls16Sx8, Iop_Cls32Sx4 };
- const IROp opsCLZ[3] = { Iop_Clz8Sx16, Iop_Clz16Sx8, Iop_Clz32Sx4 };
+ const IROp opsCLS[3] = { Iop_Cls8x16, Iop_Cls16x8, Iop_Cls32x4 };
+ const IROp opsCLZ[3] = { Iop_Clz8x16, Iop_Clz16x8, Iop_Clz32x4 };
Bool isCLZ = bitU == 1;
IRTemp res = newTemp(Ity_V128);
vassert(size <= 2);
Modified: trunk/priv/guest_arm_toIR.c
==============================================================================
--- trunk/priv/guest_arm_toIR.c (original)
+++ trunk/priv/guest_arm_toIR.c Thu Jun 26 08:18:08 2014
@@ -6740,9 +6740,9 @@
/* VCLS */
IROp op;
switch (size) {
- case 0: op = Q ? Iop_Cls8Sx16 : Iop_Cls8Sx8; break;
- case 1: op = Q ? Iop_Cls16Sx8 : Iop_Cls16Sx4; break;
- case 2: op = Q ? Iop_Cls32Sx4 : Iop_Cls32Sx2; break;
+ case 0: op = Q ? Iop_Cls8x16 : Iop_Cls8x8; break;
+ case 1: op = Q ? Iop_Cls16x8 : Iop_Cls16x4; break;
+ case 2: op = Q ? Iop_Cls32x4 : Iop_Cls32x2; break;
case 3: return False;
default: vassert(0);
}
@@ -6755,9 +6755,9 @@
/* VCLZ */
IROp op;
switch (size) {
- case 0: op = Q ? Iop_Clz8Sx16 : Iop_Clz8Sx8; break;
- case 1: op = Q ? Iop_Clz16Sx8 : Iop_Clz16Sx4; break;
- case 2: op = Q ? Iop_Clz32Sx4 : Iop_Clz32Sx2; break;
+ case 0: op = Q ? Iop_Clz8x16 : Iop_Clz8x8; break;
+ case 1: op = Q ? Iop_Clz16x8 : Iop_Clz16x4; break;
+ case 2: op = Q ? Iop_Clz32x4 : Iop_Clz32x2; break;
case 3: return False;
default: vassert(0);
}
Modified: trunk/priv/guest_ppc_toIR.c
==============================================================================
--- trunk/priv/guest_ppc_toIR.c (original)
+++ trunk/priv/guest_ppc_toIR.c Thu Jun 26 08:18:08 2014
@@ -13303,17 +13303,17 @@
switch (opc2) {
case 0x702: // vclzb
DIP("vclzb v%d,v%d\n", vRT_addr, vRB_addr);
- putVReg( vRT_addr, unop(Iop_Clz8Sx16, mkexpr( vB ) ) );
+ putVReg( vRT_addr, unop(Iop_Clz8x16, mkexpr( vB ) ) );
break;
case 0x742: // vclzh
DIP("vclzh v%d,v%d\n", vRT_addr, vRB_addr);
- putVReg( vRT_addr, unop(Iop_Clz16Sx8, mkexpr( vB ) ) );
+ putVReg( vRT_addr, unop(Iop_Clz16x8, mkexpr( vB ) ) );
break;
case 0x782: // vclzw
DIP("vclzw v%d,v%d\n", vRT_addr, vRB_addr);
- putVReg( vRT_addr, unop(Iop_Clz32Sx4, mkexpr( vB ) ) );
+ putVReg( vRT_addr, unop(Iop_Clz32x4, mkexpr( vB ) ) );
break;
case 0x7C2: // vclzd
Modified: trunk/priv/host_arm64_isel.c
==============================================================================
--- trunk/priv/host_arm64_isel.c (original)
+++ trunk/priv/host_arm64_isel.c Thu Jun 26 08:18:08 2014
@@ -4414,8 +4414,8 @@
case Iop_Neg64Fx2: case Iop_Neg32Fx4:
case Iop_Abs64x2: case Iop_Abs32x4:
case Iop_Abs16x8: case Iop_Abs8x16:
- case Iop_Cls32Sx4: case Iop_Cls16Sx8: case Iop_Cls8Sx16:
- case Iop_Clz32Sx4: case Iop_Clz16Sx8: case Iop_Clz8Sx16:
+ case Iop_Cls32x4: case Iop_Cls16x8: case Iop_Cls8x16:
+ case Iop_Clz32x4: case Iop_Clz16x8: case Iop_Clz8x16:
case Iop_Cnt8x16:
{
HReg res = newVRegV(env);
@@ -4431,12 +4431,12 @@
case Iop_Abs32x4: op = ARM64vecu_ABS32x4; break;
case Iop_Abs16x8: op = ARM64vecu_ABS16x8; break;
case Iop_Abs8x16: op = ARM64vecu_ABS8x16; break;
- case Iop_Cls32Sx4: op = ARM64vecu_CLS32x4; break;
- case Iop_Cls16Sx8: op = ARM64vecu_CLS16x8; break;
- case Iop_Cls8Sx16: op = ARM64vecu_CLS8x16; break;
- case Iop_Clz32Sx4: op = ARM64vecu_CLZ32x4; break;
- case Iop_Clz16Sx8: op = ARM64vecu_CLZ16x8; break;
- case Iop_Clz8Sx16: op = ARM64vecu_CLZ8x16; break;
+ case Iop_Cls32x4: op = ARM64vecu_CLS32x4; break;
+ case Iop_Cls16x8: op = ARM64vecu_CLS16x8; break;
+ case Iop_Cls8x16: op = ARM64vecu_CLS8x16; break;
+ case Iop_Clz32x4: op = ARM64vecu_CLZ32x4; break;
+ case Iop_Clz16x8: op = ARM64vecu_CLZ16x8; break;
+ case Iop_Clz8x16: op = ARM64vecu_CLZ8x16; break;
case Iop_Cnt8x16: op = ARM64vecu_CNT8x16; break;
default: vassert(0);
}
Modified: trunk/priv/host_arm_isel.c
==============================================================================
--- trunk/priv/host_arm_isel.c (original)
+++ trunk/priv/host_arm_isel.c Thu Jun 26 08:18:08 2014
@@ -3577,32 +3577,32 @@
res, arg, size, False));
return res;
}
- case Iop_Clz8Sx8:
- case Iop_Clz16Sx4:
- case Iop_Clz32Sx2: {
+ case Iop_Clz8x8:
+ case Iop_Clz16x4:
+ case Iop_Clz32x2: {
HReg res = newVRegD(env);
HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
UInt size = 0;
switch(e->Iex.Binop.op) {
- case Iop_Clz8Sx8: size = 0; break;
- case Iop_Clz16Sx4: size = 1; break;
- case Iop_Clz32Sx2: size = 2; break;
+ case Iop_Clz8x8: size = 0; break;
+ case Iop_Clz16x4: size = 1; break;
+ case Iop_Clz32x2: size = 2; break;
default: vassert(0);
}
addInstr(env, ARMInstr_NUnary(ARMneon_CLZ,
res, arg, size, False));
return res;
}
- case Iop_Cls8Sx8:
- case Iop_Cls16Sx4:
- case Iop_Cls32Sx2: {
+ case Iop_Cls8x8:
+ case Iop_Cls16x4:
+ case Iop_Cls32x2: {
HReg res = newVRegD(env);
HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
UInt size = 0;
switch(e->Iex.Binop.op) {
- case Iop_Cls8Sx8: size = 0; break;
- case Iop_Cls16Sx4: size = 1; break;
- case Iop_Cls32Sx2: size = 2; break;
+ case Iop_Cls8x8: size = 0; break;
+ case Iop_Cls16x4: size = 1; break;
+ case Iop_Cls32x2: size = 2; break;
default: vassert(0);
}
addInstr(env, ARMInstr_NUnary(ARMneon_CLS,
@@ -4174,31 +4174,31 @@
addInstr(env, ARMInstr_NUnary(ARMneon_CNT, res, arg, size, True));
return res;
}
- case Iop_Clz8Sx16:
- case Iop_Clz16Sx8:
- case Iop_Clz32Sx4: {
+ case Iop_Clz8x16:
+ case Iop_Clz16x8:
+ case Iop_Clz32x4: {
HReg res = newVRegV(env);
HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
UInt size = 0;
switch(e->Iex.Binop.op) {
- case Iop_Clz8Sx16: size = 0; break;
- case Iop_Clz16Sx8: size = 1; break;
- case Iop_Clz32Sx4: size = 2; break;
+ case Iop_Clz8x16: size = 0; break;
+ case Iop_Clz16x8: size = 1; break;
+ case Iop_Clz32x4: size = 2; break;
default: vassert(0);
}
addInstr(env, ARMInstr_NUnary(ARMneon_CLZ, res, arg, size, True));
return res;
}
- case Iop_Cls8Sx16:
- case Iop_Cls16Sx8:
- case Iop_Cls32Sx4: {
+ case Iop_Cls8x16:
+ case Iop_Cls16x8:
+ case Iop_Cls32x4: {
HReg res = newVRegV(env);
HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
UInt size = 0;
switch(e->Iex.Binop.op) {
- case Iop_Cls8Sx16: size = 0; break;
- case Iop_Cls16Sx8: size = 1; break;
- case Iop_Cls32Sx4: size = 2; break;
+ case Iop_Cls8x16: size = 0; break;
+ case Iop_Cls16x8: size = 1; break;
+ case Iop_Cls32x4: size = 2; break;
default: vassert(0);
}
addInstr(env, ARMInstr_NUnary(ARMneon_CLS, res, arg, size, True));
Modified: trunk/priv/host_ppc_isel.c
==============================================================================
--- trunk/priv/host_ppc_isel.c (original)
+++ trunk/priv/host_ppc_isel.c Thu Jun 26 08:18:08 2014
@@ -4853,10 +4853,10 @@
return dst;
}
- case Iop_Clz8Sx16: op = Pav_ZEROCNTBYTE; goto do_zerocnt;
- case Iop_Clz16Sx8: op = Pav_ZEROCNTHALF; goto do_zerocnt;
- case Iop_Clz32Sx4: op = Pav_ZEROCNTWORD; goto do_zerocnt;
- case Iop_Clz64x2: op = Pav_ZEROCNTDBL; goto do_zerocnt;
+ case Iop_Clz8x16: op = Pav_ZEROCNTBYTE; goto do_zerocnt;
+ case Iop_Clz16x8: op = Pav_ZEROCNTHALF; goto do_zerocnt;
+ case Iop_Clz32x4: op = Pav_ZEROCNTWORD; goto do_zerocnt;
+ case Iop_Clz64x2: op = Pav_ZEROCNTDBL; goto do_zerocnt;
case Iop_PwBitMtxXpose64x2: op = Pav_BITMTXXPOSE; goto do_zerocnt;
do_zerocnt:
{
Modified: trunk/priv/ir_defs.c
==============================================================================
--- trunk/priv/ir_defs.c (original)
+++ trunk/priv/ir_defs.c Thu Jun 26 08:18:08 2014
@@ -508,12 +508,12 @@
case Iop_CmpGT16Sx4: vex_printf("CmpGT16Sx4"); return;
case Iop_CmpGT32Sx2: vex_printf("CmpGT32Sx2"); return;
case Iop_Cnt8x8: vex_printf("Cnt8x8"); return;
- case Iop_Clz8Sx8: vex_printf("Clz8Sx8"); return;
- case Iop_Clz16Sx4: vex_printf("Clz16Sx4"); return;
- case Iop_Clz32Sx2: vex_printf("Clz32Sx2"); return;
- case Iop_Cls8Sx8: vex_printf("Cls8Sx8"); return;
- case Iop_Cls16Sx4: vex_printf("Cls16Sx4"); return;
- case Iop_Cls32Sx2: vex_printf("Cls32Sx2"); return;
+ case Iop_Clz8x8: vex_printf("Clz8x8"); return;
+ case Iop_Clz16x4: vex_printf("Clz16x4"); return;
+ case Iop_Clz32x2: vex_printf("Clz32x2"); return;
+ case Iop_Cls8x8: vex_printf("Cls8x8"); return;
+ case Iop_Cls16x4: vex_printf("Cls16x4"); return;
+ case Iop_Cls32x2: vex_printf("Cls32x2"); return;
case Iop_ShlN8x8: vex_printf("ShlN8x8"); return;
case Iop_ShlN16x4: vex_printf("ShlN16x4"); return;
case Iop_ShlN32x2: vex_printf("ShlN32x2"); return;
@@ -838,13 +838,13 @@
case Iop_CmpGT64Ux2: vex_printf("CmpGT64Ux2"); return;
case Iop_Cnt8x16: vex_printf("Cnt8x16"); return;
- case Iop_Clz8Sx16: vex_printf("Clz8Sx16"); return;
- case Iop_Clz16Sx8: vex_printf("Clz16Sx8"); return;
- case Iop_Clz32Sx4: vex_printf("Clz32Sx4"); return;
+ case Iop_Clz8x16: vex_printf("Clz8x16"); return;
+ case Iop_Clz16x8: vex_printf("Clz16x8"); return;
+ case Iop_Clz32x4: vex_printf("Clz32x4"); return;
case Iop_Clz64x2: vex_printf("Clz64x2"); return;
- case Iop_Cls8Sx16: vex_printf("Cls8Sx16"); return;
- case Iop_Cls16Sx8: vex_printf("Cls16Sx8"); return;
- case Iop_Cls32Sx4: vex_printf("Cls32Sx4"); return;
+ case Iop_Cls8x16: vex_printf("Cls8x16"); return;
+ case Iop_Cls16x8: vex_printf("Cls16x8"); return;
+ case Iop_Cls32x4: vex_printf("Cls32x4"); return;
case Iop_ShlV128: vex_printf("ShlV128"); return;
case Iop_ShrV128: vex_printf("ShrV128"); return;
@@ -2518,8 +2518,8 @@
case Iop_Not64:
case Iop_CmpNEZ32x2: case Iop_CmpNEZ16x4: case Iop_CmpNEZ8x8:
case Iop_Cnt8x8:
- case Iop_Clz8Sx8: case Iop_Clz16Sx4: case Iop_Clz32Sx2:
- case Iop_Cls8Sx8: case Iop_Cls16Sx4: case Iop_Cls32Sx2:
+ case Iop_Clz8x8: case Iop_Clz16x4: case Iop_Clz32x2:
+ case Iop_Cls8x8: case Iop_Cls16x4: case Iop_Cls32x2:
case Iop_PwAddL8Ux8: case Iop_PwAddL16Ux4: case Iop_PwAddL32Ux2:
case Iop_PwAddL8Sx8: case Iop_PwAddL16Sx4: case Iop_PwAddL32Sx2:
case Iop_Reverse64_8x8: case Iop_Reverse64_16x4: case Iop_Reverse64_32x2:
@@ -2903,8 +2903,8 @@
case Iop_CmpNEZ8x16: case Iop_CmpNEZ16x8:
case Iop_CmpNEZ32x4: case Iop_CmpNEZ64x2:
case Iop_Cnt8x16:
- case Iop_Clz8Sx16: case Iop_Clz16Sx8: case Iop_Clz32Sx4: case Iop_Clz64x2:
- case Iop_Cls8Sx16: case Iop_Cls16Sx8: case Iop_Cls32Sx4:
+ case Iop_Clz8x16: case Iop_Clz16x8: case Iop_Clz32x4: case Iop_Clz64x2:
+ case Iop_Cls8x16: case Iop_Cls16x8: case Iop_Cls32x4:
case Iop_PwAddL8Ux16: case Iop_PwAddL16Ux8: case Iop_PwAddL32Ux4:
case Iop_PwAddL8Sx16: case Iop_PwAddL16Sx8: case Iop_PwAddL32Sx4:
case Iop_Reverse64_8x16: case Iop_Reverse64_16x8: case Iop_Reverse64_32x4:
Modified: trunk/pub/libvex_ir.h
==============================================================================
--- trunk/pub/libvex_ir.h (original)
+++ trunk/pub/libvex_ir.h Thu Jun 26 08:18:08 2014
@@ -900,8 +900,8 @@
/* COUNT ones / leading zeroes / leading sign bits (not including topmost
bit) */
Iop_Cnt8x8,
- Iop_Clz8Sx8, Iop_Clz16Sx4, Iop_Clz32Sx2,
- Iop_Cls8Sx8, Iop_Cls16Sx4, Iop_Cls32Sx2,
+ Iop_Clz8x8, Iop_Clz16x4, Iop_Clz32x2,
+ Iop_Cls8x8, Iop_Cls16x4, Iop_Cls32x2,
Iop_Clz64x2,
/* VECTOR x VECTOR SHIFT / ROTATE */
@@ -1503,8 +1503,8 @@
/* COUNT ones / leading zeroes / leading sign bits (not including topmost
bit) */
Iop_Cnt8x16,
- Iop_Clz8Sx16, Iop_Clz16Sx8, Iop_Clz32Sx4,
- Iop_Cls8Sx16, Iop_Cls16Sx8, Iop_Cls32Sx4,
+ Iop_Clz8x16, Iop_Clz16x8, Iop_Clz32x4,
+ Iop_Cls8x16, Iop_Cls16x8, Iop_Cls32x4,
/* VECTOR x SCALAR SHIFT (shift amt :: Ity_I8) */
Iop_ShlN8x16, Iop_ShlN16x8, Iop_ShlN32x4, Iop_ShlN64x2,
|
|
From: <sv...@va...> - 2014-06-26 07:41:32
|
Author: sewardj
Date: Thu Jun 26 07:41:14 2014
New Revision: 2888
Log:
arm64: implement pmull{2}.
Modified:
trunk/priv/guest_arm64_toIR.c
trunk/priv/host_arm64_defs.c
trunk/priv/host_arm64_defs.h
trunk/priv/host_arm64_isel.c
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Thu Jun 26 07:41:14 2014
@@ -5609,6 +5609,24 @@
}
+/* Let |argL| and |argR| be V128 values, and let |opI64x2toV128| be
+ an op which takes two I64s and produces a V128. That is, a widening
+ operator. Generate IR which applies |opI64x2toV128| to either the
+ lower (if |is2| is False) or upper (if |is2| is True) halves of
+ |argL| and |argR|, and return the value in a new IRTemp.
+*/
+static
+IRTemp math_BINARY_WIDENING_V128 ( Bool is2, IROp opI64x2toV128,
+ IRExpr* argL, IRExpr* argR )
+{
+ IRTemp res = newTemp(Ity_V128);
+ IROp slice = is2 ? Iop_V128HIto64 : Iop_V128to64;
+ assign(res, binop(opI64x2toV128, unop(slice, argL),
+ unop(slice, argR)));
+ return res;
+}
+
+
/* Let |new64| be a V128 in which only the lower 64 bits are interesting,
and the upper can contain any value -- it is ignored. If |is2| is False,
generate IR to put |new64| in the lower half of vector reg |dd| and zero
@@ -6938,6 +6956,22 @@
return True;
}
+ if (bitU == 0 && opcode == BITS4(1,1,1,0)) {
+ /* -------- 0,1110 PMULL{2} -------- */
+ /* Narrows, and size refers to the narrowed lanes. */
+ if (size != X00) return False;
+ IRTemp res
+ = math_BINARY_WIDENING_V128(is2, Iop_PolynomialMull8x8,
+ getQReg128(nn), getQReg128(mm));
+ putQReg128(dd, mkexpr(res));
+ const HChar* arrNarrow = nameArr_Q_SZ(bitQ, size);
+ const HChar* arrWide = nameArr_Q_SZ(1, size+1);
+ DIP("%s%s %s.%s, %s.%s, %s.%s\n", "pmull", is2 ? "2" : "",
+ nameQReg128(dd), arrNarrow,
+ nameQReg128(nn), arrWide, nameQReg128(mm), arrWide);
+ return True;
+ }
+
return False;
# undef INSN
}
Modified: trunk/priv/host_arm64_defs.c
==============================================================================
--- trunk/priv/host_arm64_defs.c (original)
+++ trunk/priv/host_arm64_defs.c Thu Jun 26 07:41:14 2014
@@ -922,6 +922,7 @@
case ARM64vecb_ZIP216x8: *nm = "zip2"; *ar = "8h"; return;
case ARM64vecb_ZIP28x16: *nm = "zip2"; *ar = "16b"; return;
case ARM64vecb_PMUL8x16: *nm = "pmul"; *ar = "16b"; return;
+ case ARM64vecb_PMULL8x8: *nm = "pmull"; *ar = "8hb"; return;
default: vpanic("showARM64VecBinOp");
}
}
@@ -5126,6 +5127,8 @@
010 01110 10 0 m 011110 n d ZIP2 Vd.16b, Vn.16b, Vm.16b
011 01110 00 1 m 100111 n d PMUL Vd.16b, Vn.16b, Vm.16b
+
+ 000 01110 00 1 m 111000 n d PMULL Vd.8h, Vn.8b, Vm.8b
*/
UInt vD = qregNo(i->ARM64in.VBinV.dst);
UInt vN = qregNo(i->ARM64in.VBinV.argL);
@@ -5353,6 +5356,10 @@
*p++ = X_3_8_5_6_5_5(X011, X01110001, vM, X100111, vN, vD);
break;
+ case ARM64vecb_PMULL8x8:
+ *p++ = X_3_8_5_6_5_5(X000, X01110001, vM, X111000, vN, vD);
+ break;
+
default:
goto bad;
}
Modified: trunk/priv/host_arm64_defs.h
==============================================================================
--- trunk/priv/host_arm64_defs.h (original)
+++ trunk/priv/host_arm64_defs.h Thu Jun 26 07:41:14 2014
@@ -345,6 +345,7 @@
ARM64vecb_ZIP18x16, ARM64vecb_ZIP232x4,
ARM64vecb_ZIP216x8, ARM64vecb_ZIP28x16,
ARM64vecb_PMUL8x16,
+ ARM64vecb_PMULL8x8,
ARM64vecb_INVALID
}
ARM64VecBinOp;
Modified: trunk/priv/host_arm64_isel.c
==============================================================================
--- trunk/priv/host_arm64_isel.c (original)
+++ trunk/priv/host_arm64_isel.c Thu Jun 26 07:41:14 2014
@@ -5671,6 +5671,19 @@
break;
}
+ case Iop_PolynomialMull8x8: {
+ HReg iSrcL = iselIntExpr_R(env, e->Iex.Binop.arg1);
+ HReg iSrcR = iselIntExpr_R(env, e->Iex.Binop.arg2);
+ HReg vSrcL = newVRegV(env);
+ HReg vSrcR = newVRegV(env);
+ HReg dst = newVRegV(env);
+ addInstr(env, ARM64Instr_VQfromXX(vSrcL, iSrcL, iSrcL));
+ addInstr(env, ARM64Instr_VQfromXX(vSrcR, iSrcR, iSrcR));
+ addInstr(env, ARM64Instr_VBinV(ARM64vecb_PMULL8x8,
+ dst, vSrcL, vSrcR));
+ return dst;
+ }
+
//ZZ case Iop_CmpGT8Ux16:
//ZZ case Iop_CmpGT16Ux8:
//ZZ case Iop_CmpGT32Ux4: {
|
|
From: Philippe W. <phi...@sk...> - 2014-06-26 05:29:28
|
valgrind revision: 14101 VEX revision: 2887 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora (7.5.1-37.fc18) Assembler: GNU assembler version 2.23.51.0.1-7.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.8.8-202.fc18.ppc64p7 ppc64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on gcc110 ( Fedora release 18 (Spherical Cow), ppc64 ) Started at 2014-06-25 20:00:16 PDT Ended at 2014-06-25 22:26:02 PDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 588 tests, 8 stderr failures, 3 stdout failures, 0 stderrB failures, 0 stdoutB failures, 2 post failures == memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/ppc64/power_ISA2_05 (stdout) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) helgrind/tests/pth_cond_destroy_busy (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.23s no: 1.7s ( 7.5x, -----) me: 3.0s (13.2x, -----) ca:18.3s (79.5x, -----) he: 1.9s ( 8.2x, -----) ca: 5.9s (25.5x, -----) dr: 1.7s ( 7.4x, -----) ma: 2.1s ( 9.3x, -----) bigcode1 valgrind-old:0.23s no: 1.7s ( 7.5x, 0.0%) me: 3.0s (13.0x, 1.6%) ca:18.1s (78.7x, 1.0%) he: 1.7s ( 7.6x, 7.9%) ca: 5.4s (23.4x, 8.0%) dr: 1.7s ( 7.4x, 0.0%) ma: 2.1s ( 9.3x, -0.9%) -- bigcode2 -- bigcode2 valgrind-new:0.23s no: 1.6s ( 6.7x, -----) me: 2.9s (12.8x, -----) ca:18.3s (79.7x, -----) he: 2.1s ( 9.3x, -----) ca: 5.5s (24.0x, -----) dr: 1.9s ( 8.1x, -----) ma: 2.1s ( 9.3x, -----) bigcode2 valgrind-old:0.23s no: 1.7s ( 7.6x,-12.3%) me: 3.0s (13.0x, -1.4%) ca:18.2s (79.1x, 0.7%) he: 2.4s (10.2x, -9.3%) ca: 5.5s (23.9x, 0.5%) dr: 1.9s ( 8.0x, 1.1%) ma: 2.1s ( 9.3x, 0.0%) -- bz2 -- bz2 valgrind-new:0.72s no: 4.6s ( 6.3x, -----) me:11.7s (16.2x, -----) ca:26.0s (36.1x, -----) he:15.4s (21.4x, -----) ca:24.9s (34.6x, -----) dr:19.2s (26.7x, -----) ma: 4.7s ( 6.5x, -----) bz2 valgrind-old:0.72s no: 4.6s ( 6.3x, 0.0%) me:11.5s (16.0x, 1.1%) ca:25.9s (36.0x, 0.3%) he:14.8s (20.6x, 3.7%) ca:24.5s (34.0x, 1.6%) dr:19.2s (26.7x, -0.1%) ma: 4.9s ( 6.8x, -4.3%) -- fbench -- fbench valgrind-new:0.34s no: 2.1s ( 6.2x, -----) me: 5.2s (15.4x, -----) ca: 8.4s (24.9x, -----) he: 5.4s (15.9x, -----) ca: 7.7s (22.7x, -----) dr: 4.8s (14.2x, -----) ma: 2.1s ( 6.3x, -----) fbench valgrind-old:0.34s no: 2.2s ( 6.4x, -1.9%) me: 5.2s (15.4x, 0.2%) ca: 8.5s (24.9x, -0.1%) he: 5.2s (15.4x, 3.1%) ca: 7.4s (21.9x, 3.5%) dr: 4.8s (14.2x, 0.0%) ma: 2.1s ( 6.3x, 0.0%) -- ffbench -- ffbench valgrind-new:0.45s no: 1.4s ( 3.2x, -----) me: 2.4s ( 5.4x, -----) ca: 2.5s ( 5.7x, -----) he: 7.0s (15.4x, -----) ca: 7.0s (15.6x, -----) dr: 4.9s (11.0x, -----) ma: 1.1s ( 2.5x, -----) ffbench valgrind-old:0.45s no: 1.3s ( 3.0x, 6.3%) me: 2.5s ( 5.5x, -1.6%) ca: 2.6s ( 5.9x, -3.9%) he: 7.0s (15.6x, -0.7%) ca: 7.0s (15.6x, 0.0%) dr: 4.9s (11.0x, 0.0%) ma: 1.0s ( 2.3x, 7.2%) -- heap -- heap valgrind-new:0.41s no: 2.5s ( 6.0x, -----) me: 9.5s (23.2x, -----) ca:13.1s (31.9x, -----) he:11.9s (29.0x, -----) ca:12.1s (29.5x, -----) dr: 8.0s (19.6x, -----) ma: 8.6s (21.1x, -----) heap valgrind-old:0.41s no: 2.4s ( 5.8x, 2.8%) me: 9.6s (23.3x, -0.6%) ca:13.1s (32.0x, -0.2%) he:11.9s (29.1x, -0.2%) ca:12.3s (30.0x, -1.7%) dr: 7.9s (19.3x, 1.2%) ma: 8.7s (21.1x, -0.1%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.42s no: 2.6s ( 6.3x, -----) me:13.5s (32.2x, -----) ca:14.2s (33.9x, -----) he:29.9s (71.2x, -----) ca:29.7s (70.7x, -----) dr:17.2s (40.9x, -----) ma:14.5s (34.5x, -----) heap_pdb4 valgrind-old:0.42s no: 4.5s (10.7x,-70.1%) me:25.4s (60.6x,-88.0%) ca:26.6s (63.3x,-86.5%) he:24.6s (58.5x, 17.8%) ca:23.9s (56.8x, 19.6%) dr:15.8s (37.5x, 8.3%) ma:15.0s (35.7x, -3.6%) -- many-loss-records -- many-loss-records valgrind-new:0.06s no: 0.9s (14.8x, -----) me: 4.0s (66.7x, -----) ca: 3.1s (51.2x, -----) he: 2.9s (48.2x, -----) ca: 3.2s (52.8x, -----) dr: 2.3s (38.2x, -----) ma: 3.2s (52.8x, -----) many-loss-records valgrind-old:0.06s no: 1.0s (17.2x,-15.7%) me: 3.1s (52.3x, 21.5%) ca: 3.6s (60.0x,-17.3%) he: 3.3s (54.3x,-12.8%) ca: 2.9s (48.7x, 7.9%) dr: 2.4s (39.8x, -4.4%) ma: 2.7s (44.3x, 16.1%) -- many-xpts -- many-xpts valgrind-new:0.16s no: 1.1s ( 6.9x, -----) me: 5.6s (35.1x, -----) ca: 8.3s (51.9x, -----) he: 7.9s (49.2x, -----) ca: 4.4s (27.6x, -----) dr: 3.6s (22.8x, -----) ma: 4.1s (25.5x, -----) many-xpts valgrind-old:0.16s no: 1.2s ( 7.4x, -7.2%) me: 5.2s (32.3x, 8.0%) ca: 8.2s (51.4x, 1.0%) he: 8.1s (50.4x, -2.4%) ca: 4.4s (27.8x, -0.7%) dr: 3.7s (23.3x, -2.2%) ma: 4.0s (25.3x, 0.7%) -- sarp -- sarp valgrind-new:0.05s no: 0.8s (15.6x, -----) me: 3.7s (73.2x, -----) ca: 5.8s (115.2x, -----) he:19.9s (397.8x, -----) ca: 3.2s (63.4x, -----) dr: 1.9s (37.4x, -----) ma: 0.7s (14.2x, -----) sarp valgrind-old:0.05s no: 0.7s (14.0x, 10.3%) me: 4.8s (95.2x,-30.1%) ca: 4.5s (90.8x, 21.2%) he:18.7s (374.4x, 5.9%) ca: 3.0s (61.0x, 3.8%) dr: 1.2s (25.0x, 33.2%) ma: 0.7s (13.6x, 4.2%) -- tinycc -- tinycc valgrind-new:0.53s no: 3.1s ( 5.9x, -----) me:18.6s (35.0x, -----) ca:21.2s (39.9x, -----) he:24.1s (45.4x, -----) ca:20.1s (37.8x, -----) dr:15.3s (29.0x, -----) ma: 4.4s ( 8.2x, -----) tinycc valgrind-old:0.53s no: 3.7s ( 7.0x,-18.1%) me:16.3s (30.8x, 12.0%) ca:25.1s (47.3x,-18.3%) he:24.6s (46.4x, -2.2%) ca:16.0s (30.1x, 20.4%) dr:12.8s (24.1x, 16.8%) ma: 4.0s ( 7.6x, 7.3%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 66m45.532s user 65m27.692s sys 0m31.217s |
|
From: Christian B. <bor...@de...> - 2014-06-26 04:08:40
|
valgrind revision: 14101 VEX revision: 2887 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] GDB: GNU gdb (GDB) SUSE (7.5.1-0.7.29) Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.23.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.101-0.21-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP3 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP3 gcc 4.3.4 on z196 (s390x) ) Started at 2014-06-26 03:45:01 CEST Ended at 2014-06-26 06:08:27 CEST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 653 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == helgrind/tests/pth_cond_destroy_busy (stderr) helgrind/tests/tc20_verifywrap (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.23s no: 4.3s (18.7x, -----) me: 6.9s (30.1x, -----) ca:26.4s (114.7x, -----) he: 5.0s (21.9x, -----) ca: 9.2s (39.8x, -----) dr: 5.4s (23.4x, -----) ma: 4.9s (21.5x, -----) bigcode1 valgrind-old:0.23s no: 4.4s (19.0x, -1.4%) me: 6.9s (30.0x, 0.4%) ca:26.4s (114.7x, 0.0%) he: 5.1s (22.0x, -0.4%) ca: 9.1s (39.7x, 0.2%) dr: 5.4s (23.4x, 0.0%) ma: 4.9s (21.5x, 0.0%) -- bigcode2 -- bigcode2 valgrind-new:0.25s no: 7.2s (28.8x, -----) me:13.9s (55.6x, -----) ca:39.6s (158.4x, -----) he:10.0s (40.2x, -----) ca:14.3s (57.2x, -----) dr: 9.5s (38.2x, -----) ma: 8.4s (33.5x, -----) bigcode2 valgrind-old:0.25s no: 7.3s (29.2x, -1.4%) me:13.8s (55.4x, 0.4%) ca:39.5s (158.0x, 0.2%) he:10.1s (40.4x, -0.7%) ca:14.2s (57.0x, 0.4%) dr: 9.5s (38.1x, 0.2%) ma: 8.4s (33.4x, 0.2%) -- bz2 -- bz2 valgrind-new:0.70s no: 5.0s ( 7.1x, -----) me:12.7s (18.2x, -----) ca:30.7s (43.8x, -----) he:19.5s (27.9x, -----) ca:34.3s (49.0x, -----) dr:28.9s (41.3x, -----) ma: 4.7s ( 6.6x, -----) bz2 valgrind-old:0.70s no: 5.0s ( 7.1x, -0.2%) me:12.7s (18.2x, -0.2%) ca:30.8s (44.0x, -0.3%) he:19.5s (27.9x, -0.1%) ca:34.3s (49.0x, -0.1%) dr:29.0s (41.4x, -0.2%) ma: 4.8s ( 6.8x, -2.6%) -- fbench -- fbench valgrind-new:0.41s no: 1.6s ( 3.9x, -----) me: 4.2s (10.3x, -----) ca: 9.3s (22.7x, -----) he: 6.2s (15.2x, -----) ca: 7.2s (17.6x, -----) dr: 5.5s (13.5x, -----) ma: 1.7s ( 4.1x, -----) fbench valgrind-old:0.41s no: 1.6s ( 3.9x, 0.0%) me: 4.2s (10.3x, -0.2%) ca: 9.3s (22.7x, -0.1%) he: 6.2s (15.2x, -0.3%) ca: 7.2s (17.5x, 0.6%) dr: 5.5s (13.5x, -0.4%) ma: 1.7s ( 4.1x, -0.0%) -- ffbench -- ffbench valgrind-new:0.19s no: 1.1s ( 5.6x, -----) me: 3.0s (15.8x, -----) ca: 3.0s (15.9x, -----) he:43.4s (228.4x, -----) ca: 9.6s (50.6x, -----) dr: 6.9s (36.3x, -----) ma: 1.0s ( 5.2x, -----) ffbench valgrind-old:0.19s no: 1.1s ( 5.6x, 0.9%) me: 3.0s (15.6x, 1.0%) ca: 3.0s (15.9x, -0.3%) he:43.4s (228.6x, -0.1%) ca: 9.6s (50.6x, 0.0%) dr: 6.9s (36.3x, 0.0%) ma: 1.0s ( 5.1x, 1.0%) -- heap -- heap valgrind-new:0.23s no: 1.9s ( 8.3x, -----) me: 8.8s (38.1x, -----) ca:13.1s (57.1x, -----) he:12.7s (55.0x, -----) ca:11.3s (49.1x, -----) dr: 7.8s (33.7x, -----) ma: 7.8s (34.1x, -----) heap valgrind-old:0.23s no: 1.9s ( 8.3x, 0.0%) me: 8.8s (38.2x, -0.1%) ca:13.1s (57.1x, -0.1%) he:12.5s (54.5x, 0.9%) ca:11.3s (49.0x, 0.2%) dr: 7.8s (34.1x, -1.0%) ma: 7.9s (34.2x, -0.4%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.22s no: 2.1s ( 9.4x, -----) me:12.9s (58.8x, -----) ca:14.2s (64.4x, -----) he:14.0s (63.8x, -----) ca:12.3s (56.1x, -----) dr: 8.6s (39.2x, -----) ma: 8.0s (36.4x, -----) heap_pdb4 valgrind-old:0.22s no: 2.1s ( 9.4x, 0.0%) me:12.9s (58.6x, 0.2%) ca:14.2s (64.6x, -0.3%) he:14.0s (63.5x, 0.4%) ca:12.3s (56.1x, 0.0%) dr: 8.6s (39.2x, 0.0%) ma: 8.0s (36.2x, 0.5%) -- many-loss-records -- many-loss-records valgrind-new:0.02s no: 0.5s (24.0x, -----) me: 2.1s (106.0x, -----) ca: 1.9s (97.0x, -----) he: 2.2s (108.0x, -----) ca: 1.9s (96.0x, -----) dr: 1.8s (88.5x, -----) ma: 1.7s (84.0x, -----) many-loss-records valgrind-old:0.02s no: 0.5s (24.0x, 0.0%) me: 2.1s (106.5x, -0.5%) ca: 1.9s (97.5x, -0.5%) he: 2.2s (108.0x, 0.0%) ca: 1.9s (95.5x, 0.5%) dr: 1.8s (88.5x, 0.0%) ma: 1.7s (84.0x, -0.0%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.6s ( 9.0x, -----) me: 3.2s (45.4x, -----) ca:373.2s (5331.0x, -----) he: 6.6s (93.7x, -----) ca: 2.8s (40.0x, -----) dr: 2.5s (35.9x, -----) ma: 2.7s (38.0x, -----) many-xpts valgrind-old:0.07s no: 0.6s ( 9.0x, 0.0%) me: 3.2s (45.4x, 0.0%) ca:368.3s (5261.9x, 1.3%) he: 6.6s (93.9x, -0.2%) ca: 2.8s (40.0x, 0.0%) dr: 2.5s (35.9x, 0.0%) ma: 2.6s (37.9x, 0.4%) -- sarp -- sarp valgrind-new:0.03s no: 0.6s (19.0x, -----) me: 3.5s (116.0x, -----) ca: 3.1s (104.7x, -----) he:17.1s (571.0x, -----) ca: 2.1s (68.7x, -----) dr: 1.4s (45.0x, -----) ma: 0.5s (17.3x, -----) sarp valgrind-old:0.03s no: 0.6s (19.0x, 0.0%) me: 3.4s (114.3x, 1.4%) ca: 3.2s (105.3x, -0.6%) he:17.4s (579.0x, -1.4%) ca: 2.0s (68.3x, 0.5%) dr: 1.3s (44.7x, 0.7%) ma: 0.5s (17.3x, 0.0%) -- tinycc -- tinycc valgrind-new:0.22s no: 2.8s (12.8x, -----) me:14.5s (66.0x, -----) ca:29.9s (136.1x, -----) he:28.1s (127.5x, -----) ca:21.4s (97.0x, -----) dr:20.4s (92.8x, -----) ma: 4.1s (18.5x, -----) tinycc valgrind-old:0.22s no: 2.8s (12.7x, 1.1%) me:14.5s (65.9x, 0.1%) ca:29.9s (136.0x, 0.0%) he:28.0s (127.4x, 0.1%) ca:21.3s (97.0x, 0.0%) dr:20.6s (93.9x, -1.2%) ma: 4.1s (18.5x, 0.2%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 110m28.073s user 109m48.002s sys 0m31.431s |
|
From: Tom H. <to...@co...> - 2014-06-26 03:54:55
|
valgrind revision: 14101 VEX revision: 2887 C compiler: gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) GDB: Assembler: GNU assembler version 2.18.50.0.6-2 20080403 C library: GNU C Library stable release version 2.8 uname -mrs: Linux 3.14.7-200.fc20.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2014-06-26 03:51:21 BST Ended at 2014-06-26 04:54:36 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 656 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) memcheck/tests/err_disable4 (stderr) none/tests/amd64/sse4-64 (stdout) |
|
From: Rich C. <rc...@wi...> - 2014-06-26 03:05:35
|
valgrind revision: 14101
VEX revision: 2887
C compiler: gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012]
GDB: GNU gdb (GDB) SUSE (7.5.1-2.1.1)
Assembler: GNU assembler (GNU Binutils; openSUSE 12.3) 2.23.1
C library: GNU C Library (GNU libc) stable release version 2.17 (git c758a6861537)
uname -mrs: Linux 3.7.9-1.1-desktop x86_64
Vendor version: Welcome to openSUSE 12.3 "Dartmouth" Beta 1 - Kernel %r (%t).
Nightly build on ultra ( gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012] Linux 3.7.9-1.1-desktop x86_64 )
Started at 2014-06-25 21:30:01 CDT
Ended at 2014-06-25 22:05:24 CDT
Results unchanged from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 681 tests, 0 stderr failures, 0 stdout failures, 2 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/hginfo (stderrB)
gdbserver_tests/mssnapshot (stderrB)
=================================================
./valgrind-new/gdbserver_tests/hginfo.stderrB.diff
=================================================
--- hginfo.stderrB.exp 2014-06-25 21:49:32.931275065 -0500
+++ hginfo.stderrB.out 2014-06-25 21:54:04.779579967 -0500
@@ -1,5 +1,11 @@
relaying data between gdb and process ....
+Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2
+Try: zypper install -C "debuginfo(build-id)=ecb8ef1a6904a2a3ec60a527f415f520c8636158"
vgdb-error value changed from 0 to 999999
+Missing separate debuginfo for /lib64/libpthread.so.0
+Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef"
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7"
Lock ga 0x........ {
Address 0x........ is 0 bytes inside data symbol "mx"
kind mbRec
=================================================
./valgrind-new/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2014-06-25 21:49:32.913275917 -0500
+++ mssnapshot.stderrB.out 2014-06-25 21:54:36.501682658 -0500
@@ -1,5 +1,11 @@
relaying data between gdb and process ....
+Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2
+Try: zypper install -C "debuginfo(build-id)=ecb8ef1a6904a2a3ec60a527f415f520c8636158"
vgdb-error value changed from 0 to 999999
+Missing separate debuginfo for /lib64/libpthread.so.0
+Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef"
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7"
general valgrind monitor commands:
help [debug] : monitor command help. With debug: + debugging commands
v.wait [<ms>] : sleep <ms> (default 0) then continue
=================================================
./valgrind-old/gdbserver_tests/hginfo.stderrB.diff
=================================================
--- hginfo.stderrB.exp 2014-06-25 21:31:13.632587165 -0500
+++ hginfo.stderrB.out 2014-06-25 21:35:26.270657681 -0500
@@ -1,5 +1,11 @@
relaying data between gdb and process ....
+Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2
+Try: zypper install -C "debuginfo(build-id)=ecb8ef1a6904a2a3ec60a527f415f520c8636158"
vgdb-error value changed from 0 to 999999
+Missing separate debuginfo for /lib64/libpthread.so.0
+Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef"
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7"
Lock ga 0x........ {
Address 0x........ is 0 bytes inside data symbol "mx"
kind mbRec
=================================================
./valgrind-old/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2014-06-25 21:31:13.591588289 -0500
+++ mssnapshot.stderrB.out 2014-06-25 21:35:57.887790442 -0500
@@ -1,5 +1,11 @@
relaying data between gdb and process ....
+Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2
+Try: zypper install -C "debuginfo(build-id)=ecb8ef1a6904a2a3ec60a527f415f520c8636158"
vgdb-error value changed from 0 to 999999
+Missing separate debuginfo for /lib64/libpthread.so.0
+Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef"
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7"
general valgrind monitor commands:
help [debug] : monitor command help. With debug: + debugging commands
v.wait [<ms>] : sleep <ms> (default 0) then continue
|
|
From: Tom H. <to...@co...> - 2014-06-26 02:52:13
|
valgrind revision: 14101 VEX revision: 2887 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.1-48.fc15) Assembler: GNU assembler version 2.21.51.0.6-6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.14.7-200.fc20.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2014-06-26 03:12:59 BST Ended at 2014-06-26 03:51:58 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 688 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) |
|
From: Tom H. <to...@co...> - 2014-06-26 02:40:26
|
valgrind revision: 14101 VEX revision: 2887 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.50.20110722-16.fc16) Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716 C library: GNU C Library development release version 2.14.90 uname -mrs: Linux 3.14.7-200.fc20.x86_64 x86_64 Vendor version: Fedora release 16 (Verne) Nightly build on bristol ( x86_64, Fedora 16 ) Started at 2014-06-26 03:02:02 BST Ended at 2014-06-26 03:40:12 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 688 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) |
|
From: Tom H. <to...@co...> - 2014-06-26 02:34:06
|
valgrind revision: 14101 VEX revision: 2887 C compiler: gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2) GDB: GNU gdb (GDB) Fedora (7.4.50.20120120-54.fc17) Assembler: GNU assembler version 2.22.52.0.1-10.fc17 20120131 C library: GNU C Library stable release version 2.15 uname -mrs: Linux 3.14.7-200.fc20.x86_64 x86_64 Vendor version: Fedora release 17 (Beefy Miracle) Nightly build on bristol ( x86_64, Fedora 17 (Beefy Miracle) ) Started at 2014-06-26 02:51:24 BST Ended at 2014-06-26 03:33:53 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 688 tests, 5 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) memcheck/tests/err_disable4 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) |
|
From: Rich C. <rc...@wi...> - 2014-06-26 02:24:26
|
valgrind revision: 14101
VEX revision: 2887
C compiler: gcc (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388]
GDB: GNU gdb (GDB; openSUSE Factory) 7.6.50.20130731-cvs
Assembler: GNU assembler (GNU Binutils; openSUSE Factory) 2.23.2
C library: GNU C Library (GNU libc) stable release version 2.18 (git )
uname -mrs: Linux 3.11.4-3-desktop x86_64
Vendor version: Welcome to openSUSE 13.1 "Bottle" Beta 1 - Kernel %r (%t).
Nightly build on rodan ( Linux 3.11.4-3-desktop x86_64 )
Started at 2014-06-25 19:22:01 CDT
Ended at 2014-06-25 21:24:16 CDT
Results unchanged from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 603 tests, 5 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
memcheck/tests/err_disable3 (stderr)
memcheck/tests/err_disable4 (stderr)
memcheck/tests/threadname (stderr)
memcheck/tests/threadname_xml (stderr)
exp-sgcheck/tests/hackedbz2 (stderr)
=================================================
./valgrind-new/exp-sgcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2014-06-25 20:25:26.053785423 -0500
+++ hackedbz2.stderr.out 2014-06-25 21:23:04.851909047 -0500
@@ -1,7 +1,6 @@
Invalid read of size 1
- at 0x........: vex_strlen (hackedbz2.c:1006)
- by 0x........: add_to_myprintf_buf (hackedbz2.c:1284)
+ at 0x........: add_to_myprintf_buf (hackedbz2.c:1006)
by 0x........: vex_printf (hackedbz2.c:1155)
by 0x........: BZ2_compressBlock (hackedbz2.c:4039)
by 0x........: handle_compress (hackedbz2.c:4761)
=================================================
./valgrind-new/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-06-25 20:24:57.827457985 -0500
+++ err_disable3.stderr.out 2014-06-25 20:44:10.085824704 -0500
@@ -10,8 +10,6 @@
Thread 2:
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
- by 0x........: child_fn (err_disable3.c:31)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-new/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2014-06-25 20:24:40.806260531 -0500
+++ err_disable4.stderr.out 2014-06-25 20:44:14.377874493 -0500
@@ -1501,8 +1501,6 @@
Thread x:
Invalid read of size 1
at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
=================================================
./valgrind-new/memcheck/tests/threadname.stderr.diff
=================================================
--- threadname.stderr.exp 2014-06-25 20:24:53.540408253 -0500
+++ threadname.stderr.out 2014-06-25 20:50:27.032197452 -0500
@@ -9,36 +9,12 @@
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_0 (threadname.c:53)
- ...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:15)
by 0x........: child_fn_0 (threadname.c:53)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
- Address 0x........ is 0 bytes after a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
- Address 0x........ is 0 bytes after a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
-
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
=================================================
./valgrind-new/memcheck/tests/threadname_xml.stderr.diff
=================================================
--- threadname_xml.stderr.exp 2014-06-25 20:24:53.531408149 -0500
+++ threadname_xml.stderr.out 2014-06-25 20:50:29.110221558 -0500
@@ -94,14 +94,6 @@
<file>threadname.c</file>
<line>...</line>
</frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_0</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
</stack>
<auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
<stack>
@@ -135,112 +127,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <threadname>try1</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>malloc</fn>
- <dir>...</dir>
- <file>vg_replace_malloc.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <threadname>012345678901234</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_2</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<truncated beyond 100 lines>
=================================================
./valgrind-old/exp-sgcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2014-06-25 19:22:17.761839521 -0500
+++ hackedbz2.stderr.out 2014-06-25 20:20:53.932628694 -0500
@@ -1,7 +1,6 @@
Invalid read of size 1
- at 0x........: vex_strlen (hackedbz2.c:1006)
- by 0x........: add_to_myprintf_buf (hackedbz2.c:1284)
+ at 0x........: add_to_myprintf_buf (hackedbz2.c:1006)
by 0x........: vex_printf (hackedbz2.c:1155)
by 0x........: BZ2_compressBlock (hackedbz2.c:4039)
by 0x........: handle_compress (hackedbz2.c:4761)
=================================================
./valgrind-old/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-06-25 19:22:55.291274879 -0500
+++ err_disable3.stderr.out 2014-06-25 19:41:51.416454446 -0500
@@ -10,8 +10,6 @@
Thread 2:
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
- by 0x........: child_fn (err_disable3.c:31)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-old/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2014-06-25 19:22:58.170308277 -0500
+++ err_disable4.stderr.out 2014-06-25 19:41:55.643503482 -0500
@@ -1501,8 +1501,6 @@
Thread x:
Invalid read of size 1
at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
=================================================
./valgrind-old/memcheck/tests/threadname.stderr.diff
=================================================
--- threadname.stderr.exp 2014-06-25 19:22:55.505277362 -0500
+++ threadname.stderr.out 2014-06-25 19:48:10.062846916 -0500
@@ -9,36 +9,12 @@
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_0 (threadname.c:53)
- ...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:15)
by 0x........: child_fn_0 (threadname.c:53)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
- Address 0x........ is 0 bytes after a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
- Address 0x........ is 0 bytes after a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
-
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
=================================================
./valgrind-old/memcheck/tests/threadname_xml.stderr.diff
=================================================
--- threadname_xml.stderr.exp 2014-06-25 19:22:58.204308672 -0500
+++ threadname_xml.stderr.out 2014-06-25 19:48:12.159871242 -0500
@@ -94,14 +94,6 @@
<file>threadname.c</file>
<line>...</line>
</frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_0</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
</stack>
<auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
<stack>
@@ -135,112 +127,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <threadname>try1</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>malloc</fn>
- <dir>...</dir>
- <file>vg_replace_malloc.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <threadname>012345678901234</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_2</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<truncated beyond 100 lines>
|
|
From: Tom H. <to...@co...> - 2014-06-26 02:21:33
|
valgrind revision: 14101 VEX revision: 2887 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora 7.5.1-42.fc18 Assembler: GNU assembler version 2.23.51.0.1-10.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.14.7-200.fc20.x86_64 x86_64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on bristol ( x86_64, Fedora 18 (Spherical Cow) ) Started at 2014-06-26 02:41:22 BST Ended at 2014-06-26 03:21:14 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 688 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 688 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) drd/tests/concurrent_close (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2014-06-26 03:02:29.577414431 +0100 --- new.short 2014-06-26 03:21:14.890782091 +0100 *************** *** 8,12 **** ! == 688 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) - drd/tests/concurrent_close (stderr) exp-sgcheck/tests/preen_invars (stdout) --- 8,11 ---- ! == 688 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) exp-sgcheck/tests/preen_invars (stdout) |