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 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) |
|
From: Tom H. <to...@co...> - 2014-06-26 02:10:22
|
valgrind revision: 14101 VEX revision: 2887 C compiler: gcc (GCC) 4.8.2 20131212 (Red Hat 4.8.2-7) GDB: GNU gdb (GDB) Fedora 7.6.1-46.fc19 Assembler: GNU assembler version 2.23.52.0.1-9.fc19 20130226 C library: GNU C Library (GNU libc) stable release version 2.17 uname -mrs: Linux 3.14.7-200.fc20.x86_64 x86_64 Vendor version: Fedora release 19 (Schrödingerâs Cat) Nightly build on bristol ( x86_64, Fedora 19 (Schrödingerâs Cat) ) Started at 2014-06-26 02:31:45 BST Ended at 2014-06-26 03:10:09 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, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) exp-sgcheck/tests/hackedbz2 (stderr) |
|
From: <sv...@va...> - 2014-06-25 23:27:30
|
Author: philippe
Date: Wed Jun 25 23:27:08 2014
New Revision: 14101
Log:
Activate --read-inline-info=yes for the outer/inner setup regtest run
as this makes the inner stacktraces easier to understand
and also it exercises the inline unwinding somewhat already,
waiting for a (possible) activation by default of --read-inline-info
Modified:
trunk/tests/outer_inner.supp
trunk/tests/vg_regtest.in
Modified: trunk/tests/outer_inner.supp
==============================================================================
--- trunk/tests/outer_inner.supp (original)
+++ trunk/tests/outer_inner.supp Wed Jun 25 23:27:08 2014
@@ -1,46 +1,56 @@
# errors to suppress when an outer runs an inner.
+# The below suppressions are assuming --read-inline-info=yes is used.
-# ==31040== 16 bytes in 1 blocks are definitely lost in loss record 10 of 106
-# ==31040== at 0x2803A367: vgPlain_arena_malloc (m_mallocfree.c:1599)
-# ==31040== by 0x2803ADE3: vgPlain_strdup (m_mallocfree.c:2140)
-# ==31040== by 0x2803208A: valgrind_main (m_main.c:437)
-# ==31040== by 0x28035F3C: _start_in_C_linux (m_main.c:2799)
-# ==31040== by 0x28030B4B: ??? (in install/lib/valgrind/memcheck-x86-linux)
+#==4649== 16 bytes in 1 blocks are definitely lost in loss record 6 of 131
+#==4649== at 0x2804262C: vgPlain_arena_malloc (m_mallocfree.c:1771)
+#==4649== by 0x28042CB2: vgPlain_arena_strdup (m_mallocfree.c:2325)
+#==4649== by 0x28042CB2: vgPlain_strdup (m_mallocfree.c:2391)
+#==4649== by 0x280391D9: main_process_cmd_line_options (m_main.c:484)
+#==4649== by 0x280391D9: valgrind_main (m_main.c:1965)
+#==4649== by 0x2803DB32: _start_in_C_linux (m_main.c:3107)
+#==4649== by 0x2803794B: ??? (in /home/philippe/valgrind/inner_trunk_untouched/memcheck/memcheck-x86-linux)
{
"keep duplicated args forever as tools can make copies"
Memcheck:Leak
fun:vgPlain_arena_malloc
+ fun:vgPlain_arena_strdup
fun:vgPlain_strdup
+ fun:main_process_cmd_line_options
fun:valgrind_main
}
-# ==31040== 392 bytes in 1 blocks are definitely lost in loss record 58 of 106
-# ==31040== at 0x2803A367: vgPlain_arena_malloc (m_mallocfree.c:1599)
-# ==31040== by 0x2803A9CF: vgPlain_malloc (m_mallocfree.c:2156)
-# ==31040== by 0x280738F0: vgPlain_ii_create_image (initimg-linux.c:202)
-# ==31040== by 0x280327CF: valgrind_main (m_main.c:1718)
-# ==31040== by 0x28035F3C: _start_in_C_linux (m_main.c:2799)
-# ==31040== by 0x28030B4B: ??? (in install/lib/valgrind/memcheck-x86-linux)
+#==4649== 344 bytes in 1 blocks are definitely lost in loss record 75 of 131
+#==4649== at 0x2804262C: vgPlain_arena_malloc (m_mallocfree.c:1771)
+#==4649== by 0x28042B3E: vgPlain_malloc (m_mallocfree.c:2371)
+#==4649== by 0x2808A893: setup_client_env (initimg-linux.c:202)
+#==4649== by 0x2808A893: vgPlain_ii_create_image (initimg-linux.c:885)
+#==4649== by 0x2803A538: valgrind_main (m_main.c:1839)
+#==4649== by 0x2803DB32: _start_in_C_linux (m_main.c:3107)
+#==4649== by 0x2803794B: ??? (in /home/philippe/valgrind/inner_trunk_untouched/memcheck/memcheck-x86-linux)
{
"LD_PRELOAD_STRING inserted in env, difficult to free"
Memcheck:Leak
fun:vgPlain_arena_malloc
fun:vgPlain_malloc
+ fun:setup_client_env
fun:vgPlain_ii_create_image
fun:valgrind_main
}
-# ==32749== 400 bytes in 1 blocks are definitely lost in loss record 47 of 96
-# ==32749== at 0x2803D0D7: vgPlain_arena_malloc (m_mallocfree.c:1599)
-# ==32749== by 0x28072DAB: vgPlain_ii_create_image (initimg-linux.c:202)
-# ==32749== by 0x28036264: valgrind_main (m_main.c:1718)
-# ==32749== by 0x280392FC: _start_in_C_linux (m_main.c:2799)
-# ==32749== by 0x28034920: ??? (in install/lib/valgrind/memcheck-amd64-linux)
+#==14848== 368 bytes in 1 blocks are definitely lost in loss record 69 of 122
+#==14848== at 0x280452C4: vgPlain_arena_malloc (m_mallocfree.c:1771)
+#==14848== by 0x28085D7B: setup_client_env (initimg-linux.c:202)
+#==14848== by 0x28085D7B: vgPlain_ii_create_image (initimg-linux.c:885)
+#==14848== by 0x2803DDF6: valgrind_main (m_main.c:1839)
+#==14848== by 0x28040DDB: _start_in_C_linux (m_main.c:3107)
+#==14848== by 0x2803B7D0: ??? (in /home/philippe/valgrind/inner_trunk_untouched/memcheck/memcheck-amd64-linux)
{
"LD_PRELOAD_STRING inserted in env, difficult to free"
Memcheck:Leak
fun:vgPlain_arena_malloc
+#??????? unclear why this is not in the stacktrace on amd64/gcc20 fun:vgPlain_malloc
+ fun:setup_client_env
fun:vgPlain_ii_create_image
fun:valgrind_main
}
Modified: trunk/tests/vg_regtest.in
==============================================================================
--- trunk/tests/vg_regtest.in (original)
+++ trunk/tests/vg_regtest.in Wed Jun 25 23:27:08 2014
@@ -243,6 +243,7 @@
. " --run-libc-freeres=no --sim-hints=enable-outer"
. " --smc-check=all-non-file"
. " --vgdb=no --trace-children=yes --read-var-info=no"
+ . " --read-inline-info=yes"
. " --suppressions="
. validate_program($tests_dir,"./tests/outer_inner.supp",1,0)
. " --memcheck:leak-check=full --memcheck:show-reachable=no"
|
|
From: <sv...@va...> - 2014-06-25 13:05:37
|
Author: sewardj
Date: Wed Jun 25 13:05:23 2014
New Revision: 2887
Log:
arm64: implement:
LD3/ST3 (multi 3-elem structs, 3 regs, post index) (2d variants only)
pmul 16b_16b_16b, 8b_8b_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
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Wed Jun 25 13:05:23 2014
@@ -4373,7 +4373,7 @@
return False;
}
- /* ---------- LD2/ST2 (multiple structures, post index) ---------- */
+ /* -------- LD2/ST2 (multi 2-elem structs, 2 regs, post index) -------- */
/* Only a very few cases. */
/* 31 23 11 9 4
0100 1100 1101 1111 1000 11 n t LD2 {Vt.2d, V(t+1)%32.2d}, [Xn|SP], #32
@@ -4513,6 +4513,58 @@
return True;
}
+ /* -------- LD3/ST3 (multi 3-elem structs, 3 regs, post index) -------- */
+ /* Only a very few cases. */
+ /* 31 23 11 9 4
+ 0100 1100 1101 1111 0100 11 n t LD3 {Vt.2d .. V(t+2)%32.2d}, [Xn|SP], #48
+ 0100 1100 1001 1111 0100 11 n t ST3 {Vt.2d .. V(t+2)%32.2d}, [Xn|SP], #48
+ */
+ if ( (insn & 0xFFFFFC00) == 0x4CDF4C00 // LD3 .2d
+ || (insn & 0xFFFFFC00) == 0x4C9F4C00 // ST3 .2d
+ ) {
+ Bool isLD = INSN(22,22) == 1;
+ UInt rN = INSN(9,5);
+ UInt vT = INSN(4,0);
+ IRTemp tEA = newTemp(Ity_I64);
+ UInt sz = INSN(11,10);
+ const HChar* name = "??";
+ assign(tEA, getIReg64orSP(rN));
+ if (rN == 31) { /* FIXME generate stack alignment check */ }
+ IRExpr* tEA_0 = binop(Iop_Add64, mkexpr(tEA), mkU64(0));
+ IRExpr* tEA_8 = binop(Iop_Add64, mkexpr(tEA), mkU64(8));
+ IRExpr* tEA_16 = binop(Iop_Add64, mkexpr(tEA), mkU64(16));
+ IRExpr* tEA_24 = binop(Iop_Add64, mkexpr(tEA), mkU64(24));
+ IRExpr* tEA_32 = binop(Iop_Add64, mkexpr(tEA), mkU64(32));
+ IRExpr* tEA_40 = binop(Iop_Add64, mkexpr(tEA), mkU64(40));
+ if (sz == BITS2(1,1)) {
+ name = "2d";
+ if (isLD) {
+ putQRegLane((vT+0) % 32, 0, loadLE(Ity_I64, tEA_0));
+ putQRegLane((vT+0) % 32, 1, loadLE(Ity_I64, tEA_24));
+ putQRegLane((vT+1) % 32, 0, loadLE(Ity_I64, tEA_8));
+ putQRegLane((vT+1) % 32, 1, loadLE(Ity_I64, tEA_32));
+ putQRegLane((vT+2) % 32, 0, loadLE(Ity_I64, tEA_16));
+ putQRegLane((vT+2) % 32, 1, loadLE(Ity_I64, tEA_40));
+ } else {
+ storeLE(tEA_0, getQRegLane((vT+0) % 32, 0, Ity_I64));
+ storeLE(tEA_24, getQRegLane((vT+0) % 32, 1, Ity_I64));
+ storeLE(tEA_8, getQRegLane((vT+1) % 32, 0, Ity_I64));
+ storeLE(tEA_32, getQRegLane((vT+1) % 32, 1, Ity_I64));
+ storeLE(tEA_16, getQRegLane((vT+2) % 32, 0, Ity_I64));
+ storeLE(tEA_40, getQRegLane((vT+2) % 32, 1, Ity_I64));
+ }
+ }
+ else {
+ vassert(0); // Can't happen.
+ }
+ putIReg64orSP(rN, binop(Iop_Add64, mkexpr(tEA), mkU64(48)));
+ DIP("%s {v%u.%s, v%u.%s, v%u.%s}, [%s], #32\n",
+ isLD ? "ld3" : "st3",
+ (vT+0) % 32, name, (vT+1) % 32, name, (vT+2) % 32, name,
+ nameIReg64orSP(rN));
+ return True;
+ }
+
/* ------------------ LD{,A}X{R,RH,RB} ------------------ */
/* ------------------ ST{,L}X{R,RH,RB} ------------------ */
/* 31 29 23 20 14 9 4
Modified: trunk/priv/host_arm64_defs.c
==============================================================================
--- trunk/priv/host_arm64_defs.c (original)
+++ trunk/priv/host_arm64_defs.c Wed Jun 25 13:05:23 2014
@@ -921,6 +921,7 @@
case ARM64vecb_ZIP232x4: *nm = "zip2"; *ar = "4s"; return;
case ARM64vecb_ZIP216x8: *nm = "zip2"; *ar = "8h"; return;
case ARM64vecb_ZIP28x16: *nm = "zip2"; *ar = "16b"; return;
+ case ARM64vecb_PMUL8x16: *nm = "pmul"; *ar = "16b"; return;
default: vpanic("showARM64VecBinOp");
}
}
@@ -5123,6 +5124,8 @@
010 01110 10 0 m 011110 n d ZIP2 Vd.4s, Vn.4s, Vm.4s
010 01110 01 0 m 011110 n d ZIP2 Vd.8h, Vn.8h, Vm.8h
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
*/
UInt vD = qregNo(i->ARM64in.VBinV.dst);
UInt vN = qregNo(i->ARM64in.VBinV.argL);
@@ -5346,6 +5349,10 @@
*p++ = X_3_8_5_6_5_5(X010, X01110000, vM, X011110, vN, vD);
break;
+ case ARM64vecb_PMUL8x16:
+ *p++ = X_3_8_5_6_5_5(X011, X01110001, vM, X100111, 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 Wed Jun 25 13:05:23 2014
@@ -344,6 +344,7 @@
ARM64vecb_ZIP132x4, ARM64vecb_ZIP116x8,
ARM64vecb_ZIP18x16, ARM64vecb_ZIP232x4,
ARM64vecb_ZIP216x8, ARM64vecb_ZIP28x16,
+ ARM64vecb_PMUL8x16,
ARM64vecb_INVALID
}
ARM64VecBinOp;
Modified: trunk/priv/host_arm64_isel.c
==============================================================================
--- trunk/priv/host_arm64_isel.c (original)
+++ trunk/priv/host_arm64_isel.c Wed Jun 25 13:05:23 2014
@@ -4986,6 +4986,7 @@
case Iop_InterleaveLO32x4:
case Iop_InterleaveLO16x8:
case Iop_InterleaveLO8x16:
+ case Iop_PolynomialMul8x16:
{
HReg res = newVRegV(env);
HReg argL = iselV128Expr(env, e->Iex.Binop.arg1);
@@ -5066,6 +5067,7 @@
break;
case Iop_InterleaveLO8x16: op = ARM64vecb_ZIP18x16; sw = True;
break;
+ case Iop_PolynomialMul8x16: op = ARM64vecb_PMUL8x16; break;
default: vassert(0);
}
if (sw) {
|
|
From: <sv...@va...> - 2014-06-25 12:19:12
|
Author: sewardj
Date: Wed Jun 25 12:19:02 2014
New Revision: 2886
Log:
Remove commented out junk which is never going to get used.
No functional change.
Modified:
trunk/priv/host_arm64_defs.h
Modified: trunk/priv/host_arm64_defs.h
==============================================================================
--- trunk/priv/host_arm64_defs.h (original)
+++ trunk/priv/host_arm64_defs.h Wed Jun 25 12:19:02 2014
@@ -35,14 +35,12 @@
#include "libvex.h" // VexArch
#include "host_generic_regs.h" // HReg
-//ZZ extern UInt arm_hwcaps;
-
/* --------- Registers. --------- */
-//ZZ /* The usual HReg abstraction.
-//ZZ There are 16 general purpose regs.
-//ZZ */
+/* The usual HReg abstraction.
+ There are 31 general purpose regs.
+*/
extern void ppHRegARM64 ( HReg );
@@ -54,7 +52,6 @@
extern HReg hregARM64_X5 ( void );
extern HReg hregARM64_X6 ( void );
extern HReg hregARM64_X7 ( void );
-//ZZ extern HReg hregARM_R8 ( void );
extern HReg hregARM64_X9 ( void );
extern HReg hregARM64_X10 ( void );
extern HReg hregARM64_X11 ( void );
@@ -377,146 +374,6 @@
}
ARM64VecShiftOp;
-//ZZ extern const HChar* showARMVfpUnaryOp ( ARMVfpUnaryOp op );
-//ZZ
-//ZZ typedef
-//ZZ enum {
-//ZZ ARMneon_VAND=90,
-//ZZ ARMneon_VORR,
-//ZZ ARMneon_VXOR,
-//ZZ ARMneon_VADD,
-//ZZ ARMneon_VADDFP,
-//ZZ ARMneon_VRHADDS,
-//ZZ ARMneon_VRHADDU,
-//ZZ ARMneon_VPADDFP,
-//ZZ ARMneon_VABDFP,
-//ZZ ARMneon_VSUB,
-//ZZ ARMneon_VSUBFP,
-//ZZ ARMneon_VMAXU,
-//ZZ ARMneon_VMAXS,
-//ZZ ARMneon_VMAXF,
-//ZZ ARMneon_VMINU,
-//ZZ ARMneon_VMINS,
-//ZZ ARMneon_VMINF,
-//ZZ ARMneon_VQADDU,
-//ZZ ARMneon_VQADDS,
-//ZZ ARMneon_VQSUBU,
-//ZZ ARMneon_VQSUBS,
-//ZZ ARMneon_VCGTU,
-//ZZ ARMneon_VCGTS,
-//ZZ ARMneon_VCGEU,
-//ZZ ARMneon_VCGES,
-//ZZ ARMneon_VCGTF,
-//ZZ ARMneon_VCGEF,
-//ZZ ARMneon_VCEQ,
-//ZZ ARMneon_VCEQF,
-//ZZ ARMneon_VEXT,
-//ZZ ARMneon_VMUL,
-//ZZ ARMneon_VMULFP,
-//ZZ ARMneon_VMULLU,
-//ZZ ARMneon_VMULLS,
-//ZZ ARMneon_VMULP,
-//ZZ ARMneon_VMULLP,
-//ZZ ARMneon_VQDMULH,
-//ZZ ARMneon_VQRDMULH,
-//ZZ ARMneon_VPADD,
-//ZZ ARMneon_VPMINU,
-//ZZ ARMneon_VPMINS,
-//ZZ ARMneon_VPMINF,
-//ZZ ARMneon_VPMAXU,
-//ZZ ARMneon_VPMAXS,
-//ZZ ARMneon_VPMAXF,
-//ZZ ARMneon_VTBL,
-//ZZ ARMneon_VQDMULL,
-//ZZ ARMneon_VRECPS,
-//ZZ ARMneon_VRSQRTS,
-//ZZ /* ... */
-//ZZ }
-//ZZ ARMNeonBinOp;
-//ZZ
-//ZZ typedef
-//ZZ enum {
-//ZZ ARMneon_VSHL=150,
-//ZZ ARMneon_VSAL, /* Yah, not SAR but SAL */
-//ZZ ARMneon_VQSHL,
-//ZZ ARMneon_VQSAL
-//ZZ }
-//ZZ ARMNeonShiftOp;
-//ZZ
-//ZZ typedef
-//ZZ enum {
-//ZZ ARMneon_COPY=160,
-//ZZ ARMneon_COPYLU,
-//ZZ ARMneon_COPYLS,
-//ZZ ARMneon_COPYN,
-//ZZ ARMneon_COPYQNSS,
-//ZZ ARMneon_COPYQNUS,
-//ZZ ARMneon_COPYQNUU,
-//ZZ ARMneon_NOT,
-//ZZ ARMneon_EQZ,
-//ZZ ARMneon_DUP,
-//ZZ ARMneon_PADDLS,
-//ZZ ARMneon_PADDLU,
-//ZZ ARMneon_CNT,
-//ZZ ARMneon_CLZ,
-//ZZ ARMneon_CLS,
-//ZZ ARMneon_VCVTxFPxINT,
-//ZZ ARMneon_VQSHLNSS,
-//ZZ ARMneon_VQSHLNUU,
-//ZZ ARMneon_VQSHLNUS,
-//ZZ ARMneon_VCVTFtoU,
-//ZZ ARMneon_VCVTFtoS,
-//ZZ ARMneon_VCVTUtoF,
-//ZZ ARMneon_VCVTStoF,
-//ZZ ARMneon_VCVTFtoFixedU,
-//ZZ ARMneon_VCVTFtoFixedS,
-//ZZ ARMneon_VCVTFixedUtoF,
-//ZZ ARMneon_VCVTFixedStoF,
-//ZZ ARMneon_VCVTF16toF32,
-//ZZ ARMneon_VCVTF32toF16,
-//ZZ ARMneon_REV16,
-//ZZ ARMneon_REV32,
-//ZZ ARMneon_REV64,
-//ZZ ARMneon_ABS,
-//ZZ ARMneon_VNEGF,
-//ZZ ARMneon_VRECIP,
-//ZZ ARMneon_VRECIPF,
-//ZZ ARMneon_VABSFP,
-//ZZ ARMneon_VRSQRTEFP,
-//ZZ ARMneon_VRSQRTE
-//ZZ /* ... */
-//ZZ }
-//ZZ ARMNeonUnOp;
-//ZZ
-//ZZ typedef
-//ZZ enum {
-//ZZ ARMneon_SETELEM=200,
-//ZZ ARMneon_GETELEMU,
-//ZZ ARMneon_GETELEMS,
-//ZZ ARMneon_VDUP,
-//ZZ }
-//ZZ ARMNeonUnOpS;
-//ZZ
-//ZZ typedef
-//ZZ enum {
-//ZZ ARMneon_TRN=210,
-//ZZ ARMneon_ZIP,
-//ZZ ARMneon_UZP
-//ZZ /* ... */
-//ZZ }
-//ZZ ARMNeonDualOp;
-//ZZ
-//ZZ extern const HChar* showARMNeonBinOp ( ARMNeonBinOp op );
-//ZZ extern const HChar* showARMNeonUnOp ( ARMNeonUnOp op );
-//ZZ extern const HChar* showARMNeonUnOpS ( ARMNeonUnOpS op );
-//ZZ extern const HChar* showARMNeonShiftOp ( ARMNeonShiftOp op );
-//ZZ extern const HChar* showARMNeonDualOp ( ARMNeonDualOp op );
-//ZZ extern const HChar* showARMNeonBinOpDataType ( ARMNeonBinOp op );
-//ZZ extern const HChar* showARMNeonUnOpDataType ( ARMNeonUnOp op );
-//ZZ extern const HChar* showARMNeonUnOpSDataType ( ARMNeonUnOpS op );
-//ZZ extern const HChar* showARMNeonShiftOpDataType ( ARMNeonShiftOp op );
-//ZZ extern const HChar* showARMNeonDualOpDataType ( ARMNeonDualOp op );
-
typedef
enum {
/* baseline */
@@ -543,7 +400,6 @@
ARM64in_LdrEX,
ARM64in_StrEX,
ARM64in_MFence,
-//ZZ ARMin_CLREX,
/* ARM64in_V*: scalar ops involving vector registers */
ARM64in_VLdStS, /* 32-bit FP load/store, with imm offset */
ARM64in_VLdStD, /* 64-bit FP load/store, with imm offset */
@@ -564,21 +420,6 @@
ARM64in_VNarrowV,
ARM64in_VShiftImmV,
ARM64in_VExtV,
-//ZZ ARMin_VAluS,
-//ZZ ARMin_VCMovD,
-//ZZ ARMin_VCMovS,
-//ZZ ARMin_VXferD,
-//ZZ ARMin_VXferS,
-//ZZ ARMin_VCvtID,
-//ZZ /* Neon */
-//ZZ ARMin_NLdStD,
-//ZZ ARMin_NUnary,
-//ZZ ARMin_NUnaryS,
-//ZZ ARMin_NDual,
-//ZZ ARMin_NBinary,
-//ZZ ARMin_NBinaryS,
-//ZZ ARMin_NShift,
-//ZZ ARMin_NShl64, // special case 64-bit shift of Dreg by immediate
ARM64in_VImmQ,
ARM64in_VDfromX, /* Move an Xreg to a Dreg */
ARM64in_VQfromXX, /* Move 2 Xregs to a Qreg */
@@ -743,9 +584,6 @@
total nuclear overkill, but better safe than sorry. */
struct {
} MFence;
-//ZZ /* A CLREX instruction. */
-//ZZ struct {
-//ZZ } CLREX;
/* --- INSTRUCTIONS INVOLVING VECTOR REGISTERS --- */
/* 32-bit Fp load/store */
struct {
@@ -864,106 +702,6 @@
HReg srcHi;
UInt amtB;
} VExtV;
-//ZZ /* 32-bit FP binary arithmetic */
-//ZZ struct {
-//ZZ ARMVfpOp op;
-//ZZ HReg dst;
-//ZZ HReg argL;
-//ZZ HReg argR;
-//ZZ } VAluS;
-//ZZ /* 64-bit FP mov src to dst on the given condition, which may
-//ZZ not be ARMcc_AL. */
-//ZZ struct {
-//ZZ ARMCondCode cond;
-//ZZ HReg dst;
-//ZZ HReg src;
-//ZZ } VCMovD;
-//ZZ /* 32-bit FP mov src to dst on the given condition, which may
-//ZZ not be ARMcc_AL. */
-//ZZ struct {
-//ZZ ARMCondCode cond;
-//ZZ HReg dst;
-//ZZ HReg src;
-//ZZ } VCMovS;
-//ZZ /* Transfer a VFP D reg to/from two integer registers (VMOV) */
-//ZZ struct {
-//ZZ Bool toD;
-//ZZ HReg dD;
-//ZZ HReg rHi;
-//ZZ HReg rLo;
-//ZZ } VXferD;
-//ZZ /* Transfer a VFP S reg to/from an integer register (VMOV) */
-//ZZ struct {
-//ZZ Bool toS;
-//ZZ HReg fD;
-//ZZ HReg rLo;
-//ZZ } VXferS;
-//ZZ /* Convert between 32-bit ints and 64-bit FP values (both ways
-//ZZ and both signednesses). (FSITOD, FUITOD, FTOSID, FTOUID) */
-//ZZ struct {
-//ZZ Bool iToD; /* True: I32->F64. False: F64->I32 */
-//ZZ Bool syned; /* True: I32 is signed. False: I32 is unsigned */
-//ZZ HReg dst;
-//ZZ HReg src;
-//ZZ } VCvtID;
-//ZZ /* Neon data processing instruction: 3 registers of the same
-//ZZ length */
-//ZZ struct {
-//ZZ ARMNeonBinOp op;
-//ZZ HReg dst;
-//ZZ HReg argL;
-//ZZ HReg argR;
-//ZZ UInt size;
-//ZZ Bool Q;
-//ZZ } NBinary;
-//ZZ struct {
-//ZZ ARMNeonBinOp op;
-//ZZ ARMNRS* dst;
-//ZZ ARMNRS* argL;
-//ZZ ARMNRS* argR;
-//ZZ UInt size;
-//ZZ Bool Q;
-//ZZ } NBinaryS;
-//ZZ struct {
-//ZZ ARMNeonShiftOp op;
-//ZZ HReg dst;
-//ZZ HReg argL;
-//ZZ HReg argR;
-//ZZ UInt size;
-//ZZ Bool Q;
-//ZZ } NShift;
-//ZZ struct {
-//ZZ HReg dst;
-//ZZ HReg src;
-//ZZ UInt amt; /* 1..63 only */
-//ZZ } NShl64;
-//ZZ struct {
-//ZZ Bool isLoad;
-//ZZ HReg dD;
-//ZZ ARMAModeN *amode;
-//ZZ } NLdStD
-//ZZ struct {
-//ZZ ARMNeonUnOpS op;
-//ZZ ARMNRS* dst;
-//ZZ ARMNRS* src;
-//ZZ UInt size;
-//ZZ Bool Q;
-//ZZ } NUnaryS;
-//ZZ struct {
-//ZZ ARMNeonUnOp op;
-//ZZ HReg dst;
-//ZZ HReg src;
-//ZZ UInt size;
-//ZZ Bool Q;
-//ZZ } NUnary;
-//ZZ /* Takes two arguments and modifies them both. */
-//ZZ struct {
-//ZZ ARMNeonDualOp op;
-//ZZ HReg arg1;
-//ZZ HReg arg2;
-//ZZ UInt size;
-//ZZ Bool Q;
-//ZZ } NDual;
struct {
HReg rQ;
UShort imm; /* Same 1-bit-per-byte encoding as IR */
@@ -1006,21 +744,19 @@
}
ARM64Instr;
-//ZZ
+
extern ARM64Instr* ARM64Instr_Arith ( HReg, HReg, ARM64RIA*, Bool isAdd );
extern ARM64Instr* ARM64Instr_Cmp ( HReg, ARM64RIA*, Bool is64 );
extern ARM64Instr* ARM64Instr_Logic ( HReg, HReg, ARM64RIL*, ARM64LogicOp );
extern ARM64Instr* ARM64Instr_Test ( HReg, ARM64RIL* );
extern ARM64Instr* ARM64Instr_Shift ( HReg, HReg, ARM64RI6*, ARM64ShiftOp );
extern ARM64Instr* ARM64Instr_Unary ( HReg, HReg, ARM64UnaryOp );
-//ZZ extern ARMInstr* ARMInstr_CmpOrTst ( Bool isCmp, HReg, ARMRI84* );
extern ARM64Instr* ARM64Instr_MovI ( HReg, HReg );
extern ARM64Instr* ARM64Instr_Imm64 ( HReg, ULong );
extern ARM64Instr* ARM64Instr_LdSt64 ( Bool isLoad, HReg, ARM64AMode* );
extern ARM64Instr* ARM64Instr_LdSt32 ( Bool isLoad, HReg, ARM64AMode* );
extern ARM64Instr* ARM64Instr_LdSt16 ( Bool isLoad, HReg, ARM64AMode* );
extern ARM64Instr* ARM64Instr_LdSt8 ( Bool isLoad, HReg, ARM64AMode* );
-//ZZ extern ARMInstr* ARMInstr_Ld8S ( ARMCondCode, HReg, ARMAMode2* );
extern ARM64Instr* ARM64Instr_XDirect ( Addr64 dstGA, ARM64AMode* amPC,
ARM64CondCode cond, Bool toFastEP );
extern ARM64Instr* ARM64Instr_XIndir ( HReg dstGA, ARM64AMode* amPC,
@@ -1038,7 +774,6 @@
extern ARM64Instr* ARM64Instr_LdrEX ( Int szB );
extern ARM64Instr* ARM64Instr_StrEX ( Int szB );
extern ARM64Instr* ARM64Instr_MFence ( void );
-//ZZ extern ARMInstr* ARMInstr_CLREX ( void );
extern ARM64Instr* ARM64Instr_VLdStS ( Bool isLoad, HReg sD, HReg rN,
UInt uimm12 /* 0 .. 16380, 0 % 4 */ );
extern ARM64Instr* ARM64Instr_VLdStD ( Bool isLoad, HReg dD, HReg rN,
@@ -1062,23 +797,6 @@
HReg dst, HReg src, UInt amt );
extern ARM64Instr* ARM64Instr_VExtV ( HReg dst,
HReg srcLo, HReg srcHi, UInt amtB );
-//ZZ extern ARMInstr* ARMInstr_VAluS ( ARMVfpOp op, HReg, HReg, HReg );
-//ZZ extern ARMInstr* ARMInstr_VCMovD ( ARMCondCode, HReg dst, HReg src );
-//ZZ extern ARMInstr* ARMInstr_VCMovS ( ARMCondCode, HReg dst, HReg src );
-//ZZ extern ARMInstr* ARMInstr_VXferD ( Bool toD, HReg dD, HReg rHi, HReg rLo );
-//ZZ extern ARMInstr* ARMInstr_VXferS ( Bool toS, HReg fD, HReg rLo );
-//ZZ extern ARMInstr* ARMInstr_VCvtID ( Bool iToD, Bool syned,
-//ZZ HReg dst, HReg src );
-//ZZ extern ARMInstr* ARMInstr_NLdStD ( Bool isLoad, HReg, ARMAModeN* );
-//ZZ extern ARMInstr* ARMInstr_NUnary ( ARMNeonUnOp, HReg, HReg, UInt, Bool );
-//ZZ extern ARMInstr* ARMInstr_NUnaryS ( ARMNeonUnOpS, ARMNRS*, ARMNRS*,
-//ZZ UInt, Bool );
-//ZZ extern ARMInstr* ARMInstr_NDual ( ARMNeonDualOp, HReg, HReg, UInt, Bool );
-//ZZ extern ARMInstr* ARMInstr_NBinary ( ARMNeonBinOp, HReg, HReg, HReg,
-//ZZ UInt, Bool );
-//ZZ extern ARMInstr* ARMInstr_NShift ( ARMNeonShiftOp, HReg, HReg, HReg,
-//ZZ UInt, Bool );
-//ZZ extern ARMInstr* ARMInstr_NShl64 ( HReg, HReg, UInt );
extern ARM64Instr* ARM64Instr_VImmQ ( HReg, UShort );
extern ARM64Instr* ARM64Instr_VDfromX ( HReg rD, HReg rX );
extern ARM64Instr* ARM64Instr_VQfromXX( HReg rQ, HReg rXhi, HReg rXlo );
|
|
From: <sv...@va...> - 2014-06-25 11:59:34
|
Author: sewardj
Date: Wed Jun 25 11:59:24 2014
New Revision: 2885
Log:
Fix bogus-looking assertion.
Modified:
trunk/priv/guest_arm_toIR.c
Modified: trunk/priv/guest_arm_toIR.c
==============================================================================
--- trunk/priv/guest_arm_toIR.c (original)
+++ trunk/priv/guest_arm_toIR.c Wed Jun 25 11:59:24 2014
@@ -7974,7 +7974,7 @@
/* The following assumes that the guest is little endian, and hence
that the memory-side (interleaved) data is stored
little-endianly. */
- vassert(i0 && *i1);
+ vassert(i0 && i1);
/* This is pretty easy, since we have primitives directly to
hand. */
if (laneszB == 4) {
|
|
From: <sv...@va...> - 2014-06-25 11:24:34
|
Author: sewardj
Date: Wed Jun 25 11:24:16 2014
New Revision: 14100
Log:
Add intercepts for more OSX 10.9 malloc_zone functions:
malloc_default_purgeable_zone malloc_create_zone
malloc_zone_check malloc_zone_register malloc_zone_unregister
malloc_set_zone_name malloc_get_zone_name
Modified:
trunk/coregrind/m_replacemalloc/vg_replace_malloc.c
Modified: trunk/coregrind/m_replacemalloc/vg_replace_malloc.c
==============================================================================
--- trunk/coregrind/m_replacemalloc/vg_replace_malloc.c (original)
+++ trunk/coregrind/m_replacemalloc/vg_replace_malloc.c Wed Jun 25 11:24:16 2014
@@ -94,7 +94,13 @@
10190 MALLOC_STATS
10200 MALLINFO
10210 DEFAULT_ZONE
- 10220 ZONE_CHECK
+ 10220 CREATE_ZONE
+ 10230 ZONE_FROM_PTR
+ 10240 ZONE_CHECK
+ 10250 ZONE_REGISTER
+ 10260 ZONE_UNREGISTER
+ 10270 ZONE_SET_NAME
+ 10280 ZONE_GET_NAME
*/
/* 2 Apr 05: the Portland Group compiler, which uses cfront/ARM style
@@ -1081,12 +1087,24 @@
DEFAULT_ZONE(VG_Z_LIBC_SONAME, malloc_default_zone);
DEFAULT_ZONE(SO_SYN_MALLOC, malloc_default_zone);
+DEFAULT_ZONE(VG_Z_LIBC_SONAME, malloc_default_purgeable_zone);
+DEFAULT_ZONE(SO_SYN_MALLOC, malloc_default_purgeable_zone);
+
+
+#define CREATE_ZONE(soname, fnname) \
+ \
+ void *VG_REPLACE_FUNCTION_EZU(10220,soname,fnname)(size_t sz, unsigned fl); \
+ void *VG_REPLACE_FUNCTION_EZU(10220,soname,fnname)(size_t sz, unsigned fl) \
+ { \
+ return &vg_default_zone; \
+ }
+CREATE_ZONE(VG_Z_LIBC_SONAME, malloc_create_zone);
#define ZONE_FROM_PTR(soname, fnname) \
\
- void *VG_REPLACE_FUNCTION_EZU(10220,soname,fnname) ( void* ptr ); \
- void *VG_REPLACE_FUNCTION_EZU(10220,soname,fnname) ( void* ptr ) \
+ void *VG_REPLACE_FUNCTION_EZU(10230,soname,fnname) ( void* ptr ); \
+ void *VG_REPLACE_FUNCTION_EZU(10230,soname,fnname) ( void* ptr ) \
{ \
return &vg_default_zone; \
}
@@ -1098,14 +1116,65 @@
// GrP fixme bypass libc's use of zone->introspect->check
#define ZONE_CHECK(soname, fnname) \
\
- int VG_REPLACE_FUNCTION_EZU(10230,soname,fnname)(void* zone); \
- int VG_REPLACE_FUNCTION_EZU(10230,soname,fnname)(void* zone) \
+ int VG_REPLACE_FUNCTION_EZU(10240,soname,fnname)(void* zone); \
+ int VG_REPLACE_FUNCTION_EZU(10240,soname,fnname)(void* zone) \
{ \
trigger_memcheck_error_if_undefined((ULong) zone); \
+ panic(#fnname); \
return 1; \
}
-//ZONE_CHECK(VG_Z_LIBC_SONAME, malloc_zone_check);
+ZONE_CHECK(VG_Z_LIBC_SONAME, malloc_zone_check);
+ZONE_CHECK(SO_SYN_MALLOC, malloc_zone_check);
+
+
+#define ZONE_REGISTER(soname, fnname) \
+ \
+ void VG_REPLACE_FUNCTION_EZU(10250,soname,fnname)(void* zone); \
+ void VG_REPLACE_FUNCTION_EZU(10250,soname,fnname)(void* zone) \
+ { \
+ trigger_memcheck_error_if_undefined((ULong) zone); \
+ }
+
+ZONE_REGISTER(VG_Z_LIBC_SONAME, malloc_zone_register);
+ZONE_REGISTER(SO_SYN_MALLOC, malloc_zone_register);
+
+
+#define ZONE_UNREGISTER(soname, fnname) \
+ \
+ void VG_REPLACE_FUNCTION_EZU(10260,soname,fnname)(void* zone); \
+ void VG_REPLACE_FUNCTION_EZU(10260,soname,fnname)(void* zone) \
+ { \
+ trigger_memcheck_error_if_undefined((ULong) zone); \
+ }
+
+ZONE_UNREGISTER(VG_Z_LIBC_SONAME, malloc_zone_unregister);
+ZONE_UNREGISTER(SO_SYN_MALLOC, malloc_zone_unregister);
+
+
+#define ZONE_SET_NAME(soname, fnname) \
+ \
+ void VG_REPLACE_FUNCTION_EZU(10270,soname,fnname)(void* zone, char* nm); \
+ void VG_REPLACE_FUNCTION_EZU(10270,soname,fnname)(void* zone, char* nm) \
+ { \
+ trigger_memcheck_error_if_undefined((ULong) zone); \
+ }
+
+ZONE_SET_NAME(VG_Z_LIBC_SONAME, malloc_set_zone_name);
+ZONE_SET_NAME(SO_SYN_MALLOC, malloc_set_zone_name);
+
+
+#define ZONE_GET_NAME(soname, fnname) \
+ \
+ char* VG_REPLACE_FUNCTION_EZU(10280,soname,fnname)(void* zone); \
+ char* VG_REPLACE_FUNCTION_EZU(10280,soname,fnname)(void* zone) \
+ { \
+ trigger_memcheck_error_if_undefined((ULong) zone); \
+ return vg_default_zone.zone_name; \
+ }
+
+ZONE_SET_NAME(VG_Z_LIBC_SONAME, malloc_get_zone_name);
+ZONE_SET_NAME(SO_SYN_MALLOC, malloc_get_zone_name);
#endif /* defined(VGO_darwin) */
|
|
From: <sv...@va...> - 2014-06-25 11:18:06
|
Author: sewardj
Date: Wed Jun 25 11:17:46 2014
New Revision: 14099
Log:
Intercept libsystem_platform.dylib:_platform_strncmp and dyld:memchr
on OSX 10.9.
Modified:
trunk/shared/vg_replace_strmem.c
Modified: trunk/shared/vg_replace_strmem.c
==============================================================================
--- trunk/shared/vg_replace_strmem.c (original)
+++ trunk/shared/vg_replace_strmem.c Wed Jun 25 11:17:46 2014
@@ -575,9 +575,10 @@
STRNCMP(VG_Z_LIBC_SONAME, __strncmp_sse42)
#elif defined(VGO_darwin)
- //STRNCMP(VG_Z_LIBC_SONAME, strncmp)
- //STRNCMP(VG_Z_DYLD, strncmp)
STRNCMP(VG_Z_LIBC_SONAME, strncmp)
+# if DARWIN_VERS == DARWIN_10_9
+ STRNCMP(libsystemZuplatformZddylib, _platform_strncmp)
+# endif
#endif
@@ -793,6 +794,7 @@
#elif defined(VGO_darwin)
# if DARWIN_VERS == DARWIN_10_9
+ MEMCHR(VG_Z_DYLD, memchr)
MEMCHR(libsystemZuplatformZddylib, _platform_memchr)
# endif
|
|
From: <sv...@va...> - 2014-06-25 11:16:08
|
Author: sewardj
Date: Wed Jun 25 11:15:51 2014
New Revision: 14098
Log:
Update suppressions for OSX 10.9 (64-bit)
Modified:
trunk/darwin13.supp
Modified: trunk/darwin13.supp
==============================================================================
--- trunk/darwin13.supp (original)
+++ trunk/darwin13.supp Wed Jun 25 11:15:51 2014
@@ -1,5 +1,11 @@
+
+# Suppressions for Darwin 13.x / Mac OS X 10.9 Mavericks
+
+############################################
+## Leaks. For other stuff see below.
+
{
- <insert_a_suppression_name_here>
+ OSX109:1-Leak
Memcheck:Leak
match-leak-kinds: possible
fun:malloc_zone_?alloc
@@ -8,7 +14,7 @@
}
{
- <insert_a_suppression_name_here>
+ OSX109:2-Leak
Memcheck:Leak
match-leak-kinds: definite
fun:?alloc
@@ -17,7 +23,7 @@
}
{
- <insert_a_suppression_name_here>
+ OSX109:3-Leak
Memcheck:Leak
match-leak-kinds: definite
fun:malloc_zone_?alloc
@@ -29,7 +35,7 @@
}
{
- <insert_a_suppression_name_here>
+ OSX109:4-Leak
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc_zone_?alloc
@@ -39,7 +45,7 @@
}
{
- <insert_a_suppression_name_here>
+ OSX109:5-Leak
Memcheck:Leak
match-leak-kinds: reachable
fun:?alloc
@@ -49,7 +55,7 @@
}
{
- <insert_a_suppression_name_here>
+ OSX109:6-Leak
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc_zone_?alloc
@@ -60,7 +66,7 @@
}
{
- <insert_a_suppression_name_here>
+ OSX109:7-Leak
Memcheck:Leak
match-leak-kinds: possible
fun:malloc_zone_?alloc
@@ -71,7 +77,7 @@
}
{
- <insert_a_suppression_name_here>
+ OSX109:8-Leak
Memcheck:Leak
match-leak-kinds: indirect
fun:?alloc
@@ -81,7 +87,7 @@
}
{
- <insert_a_suppression_name_here>
+ OSX109:9-Leak
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc_zone_?alloc
@@ -91,7 +97,7 @@
}
{
- <insert_a_suppression_name_here>
+ OSX109:10-Leak
Memcheck:Leak
match-leak-kinds: reachable
fun:?alloc
@@ -100,80 +106,138 @@
...
}
+############################################
+## Non-leak errors
+
{
- <insert_a_suppression_name_here>
- Memcheck:Addr1
- ...
- fun:libSystem_initializer
- ...
- fun:_dyld_start
+ OSX109:AppKit-1
+ Memcheck:Cond
+ obj:*AppKit.framework*AppKit*
+ obj:*AppKit.framework*AppKit*
+ obj:*AppKit.framework*AppKit*
}
{
- <insert_a_suppression_name_here>
- Memcheck:Addr4
- ...
- fun:libSystem_initializer
- ...
- fun:_dyld_start
+ OSX109:AppKit-2
+ Memcheck:Cond
+ obj:*AppKit.framework*AppKit*
+ obj:*AppKit.framework*AppKit*
+ obj:*libdispatch.dylib*
}
{
- <insert_a_suppression_name_here>
- Memcheck:Addr8
- ...
- fun:libSystem_initializer
- ...
- fun:_dyld_start
+ OSX109:AppKit-3
+ Memcheck:Cond
+ obj:*AppKit.framework*AppKit*
+ obj:*libdispatch.dylib*
+ obj:*libdispatch.dylib*
}
{
- <insert_a_suppression_name_here>
- Memcheck:Addr8
- ...
- fun:libSystem_initializer
- ...
- fun:_ZN4dyld24initializeMainExecutableEv
+ OSX109:ColorSync-1
+ Memcheck:Cond
+ obj:*ColorSync.framework*ColorSync*
+ obj:*ColorSync.framework*ColorSync*
+ obj:*ColorSync.framework*ColorSync*
}
{
- <insert_a_suppression_name_here>
- Memcheck:Addr16
- ...
- fun:dyld_register_image_state_change_handler
+ OSX109:ColorSync-2
+ Memcheck:Value8
+ obj:*ColorSync.framework*ColorSync*
+ obj:*ColorSync.framework*ColorSync*
+ obj:*ColorSync.framework*ColorSync*
}
{
- <insert_a_suppression_name_here>
+ OSX109:CoreGraphics-1
Memcheck:Cond
- fun:_platform_memchr
- ...
+ obj:*CoreGraphics.framework*CoreGraphics*
+ obj:*CoreGraphics.framework*CoreGraphics*
+ obj:*CoreGraphics.framework*CoreGraphics*
}
{
- <insert_a_suppression_name_here>
- Memcheck:Addr16
- obj:/usr/lib/system/libsystem_platform.dylib
- ...
+ OSX109:CoreGraphics-2
+ Memcheck:Value8
+ obj:*CoreGraphics.framework*CoreGraphics*
+ obj:*CoreGraphics.framework*CoreGraphics*
+ obj:*CoreGraphics.framework*CoreGraphics*
}
{
- <insert_a_suppression_name_here>
- Memcheck:Addr16
- obj:/usr/lib/system/libsystem_c.dylib
- ...
+ OSX109:CoreGraphics-3
+ Memcheck:Cond
+ obj:*CoreGraphics.framework*CoreGraphics*
+ obj:*CoreGraphics.framework*libRIP*
+ obj:*CoreGraphics.framework*libRIP*
}
{
- <insert_a_suppression_name_here>
+ OSX109:CoreGraphics-4
Memcheck:Cond
- obj:/usr/lib/system/libsystem_c.dylib
- ...
+ obj:*CoreGraphics.framework*CoreGraphics*
+ obj:*CoreGraphics.framework*CoreGraphics*
+ obj:*CoreGraphics.framework*libRIP*
}
{
- <insert_a_suppression_name_here>
+ OSX109:CoreGraphics-5
Memcheck:Cond
- obj:/usr/lib/system/libsystem_platform.dylib
- ...
+ obj:*CoreGraphics.framework*CoreGraphics*
+ obj:*libdispatch.dylib*
+ obj:*libdispatch.dylib*
+}
+
+{
+ OSX109:dyld-2
+ Memcheck:Cond
+ obj:/usr/lib/dyld
+ obj:/usr/lib/dyld
+ obj:/usr/lib/dyld
+}
+
+{
+ OSX109:HIServices-1
+ Memcheck:Cond
+ obj:*HIServices.framework*HIServices*
+ obj:*HIToolbox.framework*HIToolbox*
+ obj:*HIToolbox.framework*HIToolbox*
+}
+
+{
+ OSX109:LaunchServices-1
+ Memcheck:Cond
+ obj:*LaunchServices.framework*LaunchServices*
+ obj:*AppKit.framework*AppKit*
+ obj:*AppKit.framework*AppKit*
+}
+
+{
+ OSX109:QuartzCore-1
+ Memcheck:Cond
+ obj:*QuartzCore.framework*QuartzCore
+ obj:*QuartzCore.framework*QuartzCore
+ obj:*QuartzCore.framework*QuartzCore
+}
+
+{
+ OSX109:vImage-1
+ Memcheck:Cond
+ obj:*vImage.framework*vImage*
+ obj:*vImage.framework*vImage*
+ obj:*CoreGraphics.framework*CoreGraphics*
+}
+
+{
+ OSX109:zlib-C
+ Memcheck:Cond
+ obj:/usr/lib/libz.*dylib
+ obj:/usr/lib/libz.*dylib
+}
+{
+ OSX109:zlib-8
+ Memcheck:Value8
+ obj:/usr/lib/libz.*dylib
+ obj:/usr/lib/libz.*dylib
}
|