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
(12) |
|
2
(6) |
3
(13) |
4
(9) |
5
(6) |
6
(8) |
7
(5) |
8
(5) |
|
9
(15) |
10
(18) |
11
(18) |
12
(18) |
13
(7) |
14
(11) |
15
(6) |
|
16
(12) |
17
(28) |
18
(15) |
19
(12) |
20
(17) |
21
(23) |
22
(10) |
|
23
(9) |
24
(11) |
25
(7) |
26
(21) |
27
(12) |
28
(6) |
29
(6) |
|
30
(8) |
|
|
|
|
|
|
|
From: Oriol P. <aut...@gm...> - 2007-09-03 16:21:10
|
Is it possible to call translated code from an instrumented function? I have an instrumented function inserted with unsafeIRDirty_0_N and from inside this function I want to call a function that is part of the user code. I want to do this because I load with LD_PRELOAD another instrumentation tool at the same time as Valgrind and I want to call a function of this other tool from Valgrind instrumentation function. I understand that this other tool is instrumented by Valgrind like regular user code and I'm not be able to call it directly from Valgrind instrumented functions. Thanks, Oriol |
|
From: Bart V. A. <bar...@gm...> - 2007-09-03 14:54:25
|
Can the patch below please be considered for inclusion in Valgrind on
the trunk ? It adds support for the getitimer() system call on ppc32,
and there is a test program included as well. This solves bug #145887.
Index: memcheck/tests/Makefile.am
===================================================================
--- memcheck/tests/Makefile.am (revision 6797)
+++ memcheck/tests/Makefile.am (working copy)
@@ -50,6 +50,7 @@
execve2.stderr.exp execve2.stderr.exp2 execve2.vgtest \
fprw.stderr.exp fprw.vgtest \
fwrite.stderr.exp fwrite.stderr.exp2 fwrite.vgtest \
+ getitimer.stderr.exp getitimer.vgtest \
inits.stderr.exp inits.vgtest \
inline.stderr.exp inline.stdout.exp inline.vgtest \
leak-0.vgtest leak-0.stderr.exp \
@@ -154,6 +155,7 @@
describe-block \
doublefree error_counts errs1 exitprog execve execve2 erringfds \
fprw fwrite hello inits inline \
+ getitimer \
=7965==leak-0 leak-cycle leak-pool leak-tree leak-regroot leakotron \
illed long_namespace_xml \
anassb@malloc_usable malloc1 malloc2 malloc3 manuel1 manuel2 manuel3 \
Index: memcheck/tests/getitimer.stderr.exp
===================================================================
Index: memcheck/tests/getitimer.vgtest
===================================================================
--- memcheck/tests/getitimer.vgtest (revision 0)
+++ memcheck/tests/getitimer.vgtest (revision 0)
@@ -0,0 +1,2 @@
+prog: getitimer -q
+vgopts: -q
Index: memcheck/tests/getitimer.c
===================================================================
--- memcheck/tests/getitimer.c (revision 0)
+++ memcheck/tests/getitimer.c (revision 0)
@@ -0,0 +1,44 @@
+#include <assert.h>
+#include <stdio.h>
+#include <string.h>
+#include <signal.h>
+#include <sys/time.h>
+
+
+#if defined NDEBUG
+#define VERIFY(e) (e)
+#else
+#define VERIFY(e) assert(e)
+#endif
+
+
+static double TimevalToDouble(const struct timeval TV)
+{
+ return TV.tv_sec + TV.tv_usec * 1e-6;
+}
+
+int main(int argc, char** argv)
+{
+ sigset_t alarm_mask;
+ struct itimerval ITV = { { 1, 0 }, { 1, 0 } };
+ struct itimerval ITV2;
+
+ sigemptyset(&alarm_mask);
+ sigaddset(&alarm_mask, SIGALRM);
+ sigprocmask(SIG_BLOCK, &alarm_mask, 0);
+
+ VERIFY(setitimer(ITIMER_REAL, &ITV, 0) == 0);
+ VERIFY(getitimer(ITIMER_REAL, &ITV2) == 0);
+ if (argc == 1)
+ {
+ printf("Result: interval = %g s, value = %g s.\n",
+ TimevalToDouble(ITV2.it_interval),
+ TimevalToDouble(ITV2.it_value));
+ }
+ assert(ITV.it_interval.tv_sec == ITV2.it_interval.tv_sec);
+ assert(ITV.it_interval.tv_usec == ITV2.it_interval.tv_usec);
+ memset(&ITV, 0, sizeof(ITV));
+ VERIFY(setitimer(ITIMER_REAL, &ITV, 0) == 0);
+
+ return 0;
+}
Index: coregrind/m_syswrap/syswrap-ppc32-linux.c
===================================================================
--- coregrind/m_syswrap/syswrap-ppc32-linux.c (revision 6797)
+++ coregrind/m_syswrap/syswrap-ppc32-linux.c (working copy)
@@ -1585,8 +1585,7 @@
PLAXY(__NR_socketcall, sys_socketcall), // 102
LINXY(__NR_syslog, sys_syslog), // 103
GENXY(__NR_setitimer, sys_setitimer), // 104
-//..
-//.. GENXY(__NR_getitimer, sys_getitimer), // 105
+ GENXY(__NR_getitimer, sys_getitimer), // 105
GENXY(__NR_stat, sys_newstat), // 106
GENXY(__NR_lstat, sys_newlstat), // 107
GENXY(__NR_fstat, sys_newfstat), // 108
|
|
From: <js...@ac...> - 2007-09-03 12:12:03
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2007-09-03 09:00:01 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 == 220 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/round (stdout) none/tests/ppc32/round (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) |
|
From: kewal7 <inv...@sh...> - 2007-09-03 04:58:21
|
I just joined Shelfari to connect with other book lovers. Come see the books= I love and see if we have any in common. Then pick my next book so I can= keep on reading.=0A=0AClick below to join my group of friends on Shelfari!= =0A=0Ahttp://www.shelfari.com/Register.aspx?ActivityId=3D7125744&InvitationCode=3D89864e93-e692-4c3c-9cf6-d7de90a847ae= =0A=0Akewal7=0A=0AShelfari is a free site that lets you share book ratings= and reviews with friends and meet people who have similar tastes in books.= It also lets you build an online bookshelf, join book clubs, and get good= book recommendations from friends. You should check it out.=0A=0A--------= =0A=0AYou have received this email because kewal7 (ke...@gm...) directly= invited you to join his/her community on Shelfari.=0A=0AIt is against Shelfari's= policies to invite people who you don't know directly. Follow this link= (http://www.shelfari.com/actions/emailoptout.aspx?email=3Dv...@li...&activityid=3D7125744)= to prevent future invitations to this address. If you believe you do not= know this person, you may view (http://www.shelfari.com/kewal7) his/her= Shelfari page or report him/her in our feedback (http://www.shelfari.com/Feedback.aspx)= section.=0A=0AShelfari, 616 1st Ave #300, Seattle, WA 98104=0A |
|
From: kewal7 <inv...@sh...> - 2007-09-03 04:57:29
|
I just joined Shelfari to connect with other book lovers. Come see the books= I love and see if we have any in common. Then pick my next book so I can= keep on reading.=0A=0AClick below to join my group of friends on Shelfari!= =0A=0Ahttp://www.shelfari.com/Register.aspx?ActivityId=3D7125508&InvitationCode=3De0f8cb2a-74ad-4979-9b73-3cd95ad1ad08= =0A=0Akewal7=0A=0AShelfari is a free site that lets you share book ratings= and reviews with friends and meet people who have similar tastes in books.= It also lets you build an online bookshelf, join book clubs, and get good= book recommendations from friends. You should check it out.=0A=0A--------= =0A=0AYou have received this email because kewal7 (ke...@gm...) directly= invited you to join his/her community on Shelfari.=0A=0AIt is against Shelfari's= policies to invite people who you don't know directly. Follow this link= (http://www.shelfari.com/actions/emailoptout.aspx?email=3Dv...@li...&activityid=3D7125508)= to prevent future invitations to this address. If you believe you do not= know this person, you may view (http://www.shelfari.com/kewal7) his/her= Shelfari page or report him/her in our feedback (http://www.shelfari.com/Feedback.aspx)= section.=0A=0AShelfari, 616 1st Ave #300, Seattle, WA 98104=0A |
|
From: Greg P. <gp...@us...> - 2007-09-03 03:38:36
|
Nicholas Nethercote writes: > On Sat, 31 Aug 2007, Greg Parker wrote: > > Where's the code that sets the definedness bits for syscall results? > > (e.g. eax on linux-x86, r3+cr0 on linux-ppc64, etc) > > > > darwin-x86 expects results in eax, edx, and eflags.c. I've missed > > something somewhere, because if eflags is marked undefined before > > the syscall then memcheck complains about the error-checking code > > after the syscall. I can't find the analogous code for other CPUs. > > I think it's this, around line 1059 in coregrind/m_syswrap/syswrap-main.c: > > /* Tell the tool that the assignment has occurred, so it can update > shadow regs as necessary. */ > VG_TRACK( post_reg_write, Vg_CoreSysCall, tid, layout.o_retval, > sizeof(UWord) ); > > It assumes only a single return value from syscalls, so you'll need to > generalise it. You're probably used to doing that by now, though :) Yep, that's it. (In fact, I changed that line a long time ago to do double-word returns, then forgot about it.) That code doesn't handle linux-ppc[32|64], which use cr0.so, or AIX-ppc[32|64], which use r4. The way the current code can call post_reg_write and then change the result registers again (i.e. if the syscall post handler mangled them) also looks suspicious. I moved the post_reg_write call(s) into putSyscallStatusIntoGuestState() for now, where each platform explicitly writes the registers it cares about, instead of using the arg layout. > > (Darwin update: I'm working towards a Leopard-i386 open-source > > release as soon after Leopard ships as possible.) > > Yay! Roughly when would that be? "October" for the OS itself. Leopard OS open-source release will follow the OS itself, and I'd guess that the lawyers wouldn't let valgrind out before the OS open-source release. -- Greg Parker gp...@us... |
|
From: Tom H. <th...@cy...> - 2007-09-03 02:31:05
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-09-03 03:15:02 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 == 256 tests, 27 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-pool-0 (stderr) memcheck/tests/leak-pool-1 (stderr) memcheck/tests/leak-pool-2 (stderr) memcheck/tests/leak-pool-3 (stderr) memcheck/tests/leak-pool-4 (stderr) memcheck/tests/leak-pool-5 (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/long_namespace_xml (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-09-03 02:23:20
|
Nightly build on dellow ( x86_64, Fedora 7 ) started at 2007-09-03 03:10:05 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 == 293 tests, 4 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_detached (stdout) |
|
From: Tom H. <th...@cy...> - 2007-09-03 02:21:08
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-09-03 03:00:46 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 == 295 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-09-03 02:17:23
|
Nightly build on lloyd ( x86_64, Fedora Core 3 ) started at 2007-09-03 03:05:03 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 == 293 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: <js...@ac...> - 2007-09-03 00:17:55
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-09-03 02:00:01 CEST 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 == 228 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/res_search (stdout) ================================================= == 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 == 228 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Sep 3 02:08:37 2007 --- new.short Mon Sep 3 02:17:54 2007 *************** *** 8,10 **** ! == 228 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) --- 8,10 ---- ! == 228 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) *************** *** 17,18 **** --- 17,19 ---- none/tests/mremap2 (stdout) + none/tests/res_search (stdout) |
|
From: <js...@ac...> - 2007-09-02 15:02:01
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2007-09-02 09:00:01 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 == 220 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/round (stdout) none/tests/ppc32/round (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) ================================================= == 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 == 219 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/round (stdout) none/tests/ppc32/round (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Sep 2 09:13:07 2007 --- new.short Sun Sep 2 09:25:45 2007 *************** *** 8,10 **** ! == 219 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) --- 8,10 ---- ! == 220 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) |
|
From: Tom H. <th...@cy...> - 2007-09-02 02:31:30
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-09-02 03:15:02 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 == 256 tests, 27 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-pool-0 (stderr) memcheck/tests/leak-pool-1 (stderr) memcheck/tests/leak-pool-2 (stderr) memcheck/tests/leak-pool-3 (stderr) memcheck/tests/leak-pool-4 (stderr) memcheck/tests/leak-pool-5 (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/long_namespace_xml (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-09-02 02:23:36
|
Nightly build on dellow ( x86_64, Fedora 7 ) started at 2007-09-02 03:10:04 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 == 293 tests, 4 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_detached (stdout) ================================================= == 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 == 292 tests, 4 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_detached (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Sep 2 03:16:52 2007 --- new.short Sun Sep 2 03:23:30 2007 *************** *** 8,10 **** ! == 292 tests, 4 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 293 tests, 4 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) |
|
From: Tom H. <th...@cy...> - 2007-09-02 02:17:27
|
Nightly build on lloyd ( x86_64, Fedora Core 3 ) started at 2007-09-02 03:05:04 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 == 293 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) ================================================= == 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 == 292 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Sep 2 03:11:17 2007 --- new.short Sun Sep 2 03:17:24 2007 *************** *** 8,10 **** ! == 292 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 293 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) |
|
From: Tom H. <th...@cy...> - 2007-09-02 02:10:58
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-09-02 03:00:03 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 == 295 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) ================================================= == 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 == 294 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Sep 2 03:05:27 2007 --- new.short Sun Sep 2 03:10:51 2007 *************** *** 8,10 **** ! == 294 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 295 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) |
|
From: <js...@ac...> - 2007-09-02 00:35:16
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-09-02 02:00:02 CEST 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 == 228 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/res_search (stdout) ================================================= == 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 == 226 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Sep 2 02:08:31 2007 --- new.short Sun Sep 2 02:17:46 2007 *************** *** 8,10 **** ! == 226 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) --- 8,10 ---- ! == 228 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) *************** *** 17,18 **** --- 17,19 ---- none/tests/mremap2 (stdout) + none/tests/res_search (stdout) |
|
From: <sv...@va...> - 2007-09-01 23:22:38
|
Author: sewardj Date: 2007-09-02 00:22:39 +0100 (Sun, 02 Sep 2007) New Revision: 6797 Log: Add test for tw instruction. Added: trunk/none/tests/ppc32/tw.c trunk/none/tests/ppc32/tw.stderr.exp trunk/none/tests/ppc32/tw.stdout.exp trunk/none/tests/ppc32/tw.vgtest Modified: trunk/none/tests/ppc32/Makefile.am Modified: trunk/none/tests/ppc32/Makefile.am =================================================================== --- trunk/none/tests/ppc32/Makefile.am 2007-09-01 23:16:49 UTC (rev 6796) +++ trunk/none/tests/ppc32/Makefile.am 2007-09-01 23:22:39 UTC (rev 6797) @@ -18,13 +18,14 @@ test_gx.stderr.exp test_gx.stdout.exp test_gx.vgtest \ testVMX.stderr.exp testVMX.stdout.exp testVMX.vgtest \ twi.stderr.exp twi.stdout.exp twi.vgtest \ + tw.stderr.exp tw.stdout.exp tw.vgtest \ xlc_dbl_u32.stderr.exp xlc_dbl_u32.stdout.exp xlc_dbl_u32.vgtest check_PROGRAMS = \ bug129390-ppc32 \ bug139050-ppc32 \ ldstrev lsw jm-insns mftocrf mcrfs round test_fx test_gx \ - testVMX twi xlc_dbl_u32 + testVMX twi tw xlc_dbl_u32 AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/include \ @FLAG_M32@ Added: trunk/none/tests/ppc32/tw.c =================================================================== --- trunk/none/tests/ppc32/tw.c (rev 0) +++ trunk/none/tests/ppc32/tw.c 2007-09-01 23:22:39 UTC (rev 6797) @@ -0,0 +1 @@ +link ../ppc64/tw_td.c \ No newline at end of file Property changes on: trunk/none/tests/ppc32/tw.c ___________________________________________________________________ Name: svn:special + * Added: trunk/none/tests/ppc32/tw.stderr.exp =================================================================== --- trunk/none/tests/ppc32/tw.stderr.exp (rev 0) +++ trunk/none/tests/ppc32/tw.stderr.exp 2007-09-01 23:22:39 UTC (rev 6797) @@ -0,0 +1,2 @@ + + Added: trunk/none/tests/ppc32/tw.stdout.exp =================================================================== --- trunk/none/tests/ppc32/tw.stdout.exp (rev 0) +++ trunk/none/tests/ppc32/tw.stdout.exp 2007-09-01 23:22:39 UTC (rev 6797) @@ -0,0 +1,96 @@ +tw_0(-150,-100) -> no trap +tw_0(-100,-100) -> no trap +tw_0( -50,-100) -> no trap +tw_1(-150,-100) -> no trap +tw_1(-100,-100) -> no trap +tw_1( -50,-100) -> TRAP +tw_2(-150,-100) -> TRAP +tw_2(-100,-100) -> no trap +tw_2( -50,-100) -> no trap +tw_3(-150,-100) -> TRAP +tw_3(-100,-100) -> no trap +tw_3( -50,-100) -> TRAP +tw_4(-150,-100) -> no trap +tw_4(-100,-100) -> TRAP +tw_4( -50,-100) -> no trap +tw_5(-150,-100) -> no trap +tw_5(-100,-100) -> TRAP +tw_5( -50,-100) -> TRAP +tw_6(-150,-100) -> TRAP +tw_6(-100,-100) -> TRAP +tw_6( -50,-100) -> no trap +tw_7(-150,-100) -> TRAP +tw_7(-100,-100) -> TRAP +tw_7( -50,-100) -> TRAP +tw_8(-150,-100) -> no trap +tw_8(-100,-100) -> no trap +tw_8( -50,-100) -> TRAP +tw_9(-150,-100) -> no trap +tw_9(-100,-100) -> no trap +tw_9( -50,-100) -> TRAP +tw_10(-150,-100) -> TRAP +tw_10(-100,-100) -> no trap +tw_10( -50,-100) -> TRAP +tw_11(-150,-100) -> TRAP +tw_11(-100,-100) -> no trap +tw_11( -50,-100) -> TRAP +tw_12(-150,-100) -> no trap +tw_12(-100,-100) -> TRAP +tw_12( -50,-100) -> TRAP +tw_13(-150,-100) -> no trap +tw_13(-100,-100) -> TRAP +tw_13( -50,-100) -> TRAP +tw_14(-150,-100) -> TRAP +tw_14(-100,-100) -> TRAP +tw_14( -50,-100) -> TRAP +tw_15(-150,-100) -> TRAP +tw_15(-100,-100) -> TRAP +tw_15( -50,-100) -> TRAP +tw_16(-150,-100) -> TRAP +tw_16(-100,-100) -> no trap +tw_16( -50,-100) -> no trap +tw_17(-150,-100) -> TRAP +tw_17(-100,-100) -> no trap +tw_17( -50,-100) -> TRAP +tw_18(-150,-100) -> TRAP +tw_18(-100,-100) -> no trap +tw_18( -50,-100) -> no trap +tw_19(-150,-100) -> TRAP +tw_19(-100,-100) -> no trap +tw_19( -50,-100) -> TRAP +tw_20(-150,-100) -> TRAP +tw_20(-100,-100) -> TRAP +tw_20( -50,-100) -> no trap +tw_21(-150,-100) -> TRAP +tw_21(-100,-100) -> TRAP +tw_21( -50,-100) -> TRAP +tw_22(-150,-100) -> TRAP +tw_22(-100,-100) -> TRAP +tw_22( -50,-100) -> no trap +tw_23(-150,-100) -> TRAP +tw_23(-100,-100) -> TRAP +tw_23( -50,-100) -> TRAP +tw_24(-150,-100) -> TRAP +tw_24(-100,-100) -> no trap +tw_24( -50,-100) -> TRAP +tw_25(-150,-100) -> TRAP +tw_25(-100,-100) -> no trap +tw_25( -50,-100) -> TRAP +tw_26(-150,-100) -> TRAP +tw_26(-100,-100) -> no trap +tw_26( -50,-100) -> TRAP +tw_27(-150,-100) -> TRAP +tw_27(-100,-100) -> no trap +tw_27( -50,-100) -> TRAP +tw_28(-150,-100) -> TRAP +tw_28(-100,-100) -> TRAP +tw_28( -50,-100) -> TRAP +tw_29(-150,-100) -> TRAP +tw_29(-100,-100) -> TRAP +tw_29( -50,-100) -> TRAP +tw_30(-150,-100) -> TRAP +tw_30(-100,-100) -> TRAP +tw_30( -50,-100) -> TRAP +tw_31(-150,-100) -> TRAP +tw_31(-100,-100) -> TRAP +tw_31( -50,-100) -> TRAP Added: trunk/none/tests/ppc32/tw.vgtest =================================================================== --- trunk/none/tests/ppc32/tw.vgtest (rev 0) +++ trunk/none/tests/ppc32/tw.vgtest 2007-09-01 23:22:39 UTC (rev 6797) @@ -0,0 +1 @@ +prog: tw |
|
From: <sv...@va...> - 2007-09-01 23:16:51
|
Author: sewardj
Date: 2007-09-02 00:16:49 +0100 (Sun, 02 Sep 2007)
New Revision: 6796
Log:
Add test for tw and td instructions.
Added:
trunk/none/tests/ppc64/tw_td.c
trunk/none/tests/ppc64/tw_td.stderr.exp
trunk/none/tests/ppc64/tw_td.stdout.exp
trunk/none/tests/ppc64/tw_td.vgtest
Modified:
trunk/none/tests/ppc64/Makefile.am
Modified: trunk/none/tests/ppc64/Makefile.am
===================================================================
--- trunk/none/tests/ppc64/Makefile.am 2007-09-01 19:43:08 UTC (rev 6795)
+++ trunk/none/tests/ppc64/Makefile.am 2007-09-01 23:16:49 UTC (rev 6796)
@@ -8,10 +8,11 @@
lsw.stderr.exp lsw.stdout.exp lsw.vgtest \
std_reg_imm.vgtest std_reg_imm.stderr.exp std_reg_imm.stdout.exp \
round.stderr.exp round.stdout.exp round.vgtest \
- twi_tdi.stderr.exp twi_tdi.stdout.exp twi_tdi.vgtest
+ twi_tdi.stderr.exp twi_tdi.stdout.exp twi_tdi.vgtest \
+ tw_td.stderr.exp tw_td.stdout.exp tw_td.vgtest
check_PROGRAMS = \
- jm-insns lsw round std_reg_imm twi_tdi
+ jm-insns lsw round std_reg_imm twi_tdi tw_td
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/include \
@FLAG_M64@
Added: trunk/none/tests/ppc64/tw_td.c
===================================================================
--- trunk/none/tests/ppc64/tw_td.c (rev 0)
+++ trunk/none/tests/ppc64/tw_td.c 2007-09-01 23:16:49 UTC (rev 6796)
@@ -0,0 +1,375 @@
+
+#include <stdio.h>
+#include <signal.h>
+#include <setjmp.h>
+#include <string.h>
+#include <assert.h>
+
+static jmp_buf env_sigtrap;
+static void handler_sigtrap ( int x ) { longjmp(env_sigtrap,1); }
+
+void try ( char* who, void(*maybe_traps)(long,long), long arg1, long arg2 )
+{
+ struct sigaction tmp_act;
+ int r, trapped = 0;
+ memset(&tmp_act, 0, sizeof(tmp_act));
+ tmp_act.sa_handler = handler_sigtrap;
+ sigemptyset(&tmp_act.sa_mask);
+ tmp_act.sa_flags = SA_NODEFER;
+ r = sigaction(SIGTRAP, &tmp_act, NULL);
+ assert(r == 0);
+ if (setjmp(env_sigtrap)) {
+ trapped = 1;
+ } else {
+ maybe_traps(arg1, arg2);
+ }
+ signal(SIGTRAP, SIG_DFL);
+
+ printf("%s(%4lld,%4lld) -> %s\n", who, (long long int)arg1,
+ (long long int)arg2,
+ trapped ? "TRAP" : "no trap" );
+}
+
+static void tw_0 ( long n, long m ) {
+ __asm__ __volatile__("tw 0, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_1 ( long n, long m ) {
+ __asm__ __volatile__("tw 1, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_2 ( long n, long m ) {
+ __asm__ __volatile__("tw 2, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_3 ( long n, long m ) {
+ __asm__ __volatile__("tw 3, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_4 ( long n, long m ) {
+ __asm__ __volatile__("tw 4, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_5 ( long n, long m ) {
+ __asm__ __volatile__("tw 5, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_6 ( long n, long m ) {
+ __asm__ __volatile__("tw 6, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_7 ( long n, long m ) {
+ __asm__ __volatile__("tw 7, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_8 ( long n, long m ) {
+ __asm__ __volatile__("tw 8, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_9 ( long n, long m ) {
+ __asm__ __volatile__("tw 9, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_10 ( long n, long m ) {
+ __asm__ __volatile__("tw 10, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_11 ( long n, long m ) {
+ __asm__ __volatile__("tw 11, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_12 ( long n, long m ) {
+ __asm__ __volatile__("tw 12, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_13 ( long n, long m ) {
+ __asm__ __volatile__("tw 13, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_14 ( long n, long m ) {
+ __asm__ __volatile__("tw 14, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_15 ( long n, long m ) {
+ __asm__ __volatile__("tw 15, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_16 ( long n, long m ) {
+ __asm__ __volatile__("tw 16, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_17 ( long n, long m ) {
+ __asm__ __volatile__("tw 17, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_18 ( long n, long m ) {
+ __asm__ __volatile__("tw 18, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_19 ( long n, long m ) {
+ __asm__ __volatile__("tw 19, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_20 ( long n, long m ) {
+ __asm__ __volatile__("tw 20, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_21 ( long n, long m ) {
+ __asm__ __volatile__("tw 21, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_22 ( long n, long m ) {
+ __asm__ __volatile__("tw 22, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_23 ( long n, long m ) {
+ __asm__ __volatile__("tw 23, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_24 ( long n, long m ) {
+ __asm__ __volatile__("tw 24, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_25 ( long n, long m ) {
+ __asm__ __volatile__("tw 25, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_26 ( long n, long m ) {
+ __asm__ __volatile__("tw 26, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_27 ( long n, long m ) {
+ __asm__ __volatile__("tw 27, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_28 ( long n, long m ) {
+ __asm__ __volatile__("tw 28, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_29 ( long n, long m ) {
+ __asm__ __volatile__("tw 29, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_30 ( long n, long m ) {
+ __asm__ __volatile__("tw 30, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_31 ( long n, long m ) {
+ __asm__ __volatile__("tw 31, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+
+#if defined(__powerpc64__)
+
+static void td_0 ( long n, long m ) {
+ __asm__ __volatile__("td 0, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_1 ( long n, long m ) {
+ __asm__ __volatile__("td 1, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_2 ( long n, long m ) {
+ __asm__ __volatile__("td 2, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_3 ( long n, long m ) {
+ __asm__ __volatile__("td 3, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_4 ( long n, long m ) {
+ __asm__ __volatile__("td 4, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_5 ( long n, long m ) {
+ __asm__ __volatile__("td 5, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_6 ( long n, long m ) {
+ __asm__ __volatile__("td 6, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_7 ( long n, long m ) {
+ __asm__ __volatile__("td 7, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_8 ( long n, long m ) {
+ __asm__ __volatile__("td 8, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_9 ( long n, long m ) {
+ __asm__ __volatile__("td 9, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_10 ( long n, long m ) {
+ __asm__ __volatile__("td 10, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_11 ( long n, long m ) {
+ __asm__ __volatile__("td 11, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_12 ( long n, long m ) {
+ __asm__ __volatile__("td 12, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_13 ( long n, long m ) {
+ __asm__ __volatile__("td 13, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_14 ( long n, long m ) {
+ __asm__ __volatile__("td 14, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_15 ( long n, long m ) {
+ __asm__ __volatile__("td 15, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_16 ( long n, long m ) {
+ __asm__ __volatile__("td 16, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_17 ( long n, long m ) {
+ __asm__ __volatile__("td 17, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_18 ( long n, long m ) {
+ __asm__ __volatile__("td 18, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_19 ( long n, long m ) {
+ __asm__ __volatile__("td 19, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_20 ( long n, long m ) {
+ __asm__ __volatile__("td 20, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_21 ( long n, long m ) {
+ __asm__ __volatile__("td 21, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_22 ( long n, long m ) {
+ __asm__ __volatile__("td 22, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_23 ( long n, long m ) {
+ __asm__ __volatile__("td 23, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_24 ( long n, long m ) {
+ __asm__ __volatile__("td 24, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_25 ( long n, long m ) {
+ __asm__ __volatile__("td 25, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_26 ( long n, long m ) {
+ __asm__ __volatile__("td 26, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_27 ( long n, long m ) {
+ __asm__ __volatile__("td 27, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_28 ( long n, long m ) {
+ __asm__ __volatile__("td 28, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_29 ( long n, long m ) {
+ __asm__ __volatile__("td 29, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_30 ( long n, long m ) {
+ __asm__ __volatile__("td 30, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_31 ( long n, long m ) {
+ __asm__ __volatile__("td 31, %0,%1"
+ : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+
+#endif
+
+
+int main ( void )
+{
+#define TW_GROUP(cmp) \
+ try("tw_" #cmp "", tw_##cmp, -150, -100); \
+ try("tw_" #cmp "", tw_##cmp, -100, -100); \
+ try("tw_" #cmp "", tw_##cmp, -50, -100);
+
+ TW_GROUP(0);
+ TW_GROUP(1);
+ TW_GROUP(2);
+ TW_GROUP(3);
+ TW_GROUP(4);
+ TW_GROUP(5);
+ TW_GROUP(6);
+ TW_GROUP(7);
+ TW_GROUP(8);
+ TW_GROUP(9);
+ TW_GROUP(10);
+ TW_GROUP(11);
+ TW_GROUP(12);
+ TW_GROUP(13);
+ TW_GROUP(14);
+ TW_GROUP(15);
+ TW_GROUP(16);
+ TW_GROUP(17);
+ TW_GROUP(18);
+ TW_GROUP(19);
+ TW_GROUP(20);
+ TW_GROUP(21);
+ TW_GROUP(22);
+ TW_GROUP(23);
+ TW_GROUP(24);
+ TW_GROUP(25);
+ TW_GROUP(26);
+ TW_GROUP(27);
+ TW_GROUP(28);
+ TW_GROUP(29);
+ TW_GROUP(30);
+ TW_GROUP(31);
+#if defined(__powerpc64__)
+#define TD_GROUP(cmp) \
+ try("td_" #cmp "", td_##cmp, -150, -100); \
+ try("td_" #cmp "", td_##cmp, -100, -100); \
+ try("td_" #cmp "", td_##cmp, -50, -100);
+
+ TD_GROUP(0);
+ TD_GROUP(1);
+ TD_GROUP(2);
+ TD_GROUP(3);
+ TD_GROUP(4);
+ TD_GROUP(5);
+ TD_GROUP(6);
+ TD_GROUP(7);
+ TD_GROUP(8);
+ TD_GROUP(9);
+ TD_GROUP(10);
+ TD_GROUP(11);
+ TD_GROUP(12);
+ TD_GROUP(13);
+ TD_GROUP(14);
+ TD_GROUP(15);
+ TD_GROUP(16);
+ TD_GROUP(17);
+ TD_GROUP(18);
+ TD_GROUP(19);
+ TD_GROUP(20);
+ TD_GROUP(21);
+ TD_GROUP(22);
+ TD_GROUP(23);
+ TD_GROUP(24);
+ TD_GROUP(25);
+ TD_GROUP(26);
+ TD_GROUP(27);
+ TD_GROUP(28);
+ TD_GROUP(29);
+ TD_GROUP(30);
+ TD_GROUP(31);
+#endif
+ return 0;
+}
Added: trunk/none/tests/ppc64/tw_td.stderr.exp
===================================================================
--- trunk/none/tests/ppc64/tw_td.stderr.exp (rev 0)
+++ trunk/none/tests/ppc64/tw_td.stderr.exp 2007-09-01 23:16:49 UTC (rev 6796)
@@ -0,0 +1,2 @@
+
+
Added: trunk/none/tests/ppc64/tw_td.stdout.exp
===================================================================
--- trunk/none/tests/ppc64/tw_td.stdout.exp (rev 0)
+++ trunk/none/tests/ppc64/tw_td.stdout.exp 2007-09-01 23:16:49 UTC (rev 6796)
@@ -0,0 +1,192 @@
+tw_0(-150,-100) -> no trap
+tw_0(-100,-100) -> no trap
+tw_0( -50,-100) -> no trap
+tw_1(-150,-100) -> no trap
+tw_1(-100,-100) -> no trap
+tw_1( -50,-100) -> TRAP
+tw_2(-150,-100) -> TRAP
+tw_2(-100,-100) -> no trap
+tw_2( -50,-100) -> no trap
+tw_3(-150,-100) -> TRAP
+tw_3(-100,-100) -> no trap
+tw_3( -50,-100) -> TRAP
+tw_4(-150,-100) -> no trap
+tw_4(-100,-100) -> TRAP
+tw_4( -50,-100) -> no trap
+tw_5(-150,-100) -> no trap
+tw_5(-100,-100) -> TRAP
+tw_5( -50,-100) -> TRAP
+tw_6(-150,-100) -> TRAP
+tw_6(-100,-100) -> TRAP
+tw_6( -50,-100) -> no trap
+tw_7(-150,-100) -> TRAP
+tw_7(-100,-100) -> TRAP
+tw_7( -50,-100) -> TRAP
+tw_8(-150,-100) -> no trap
+tw_8(-100,-100) -> no trap
+tw_8( -50,-100) -> TRAP
+tw_9(-150,-100) -> no trap
+tw_9(-100,-100) -> no trap
+tw_9( -50,-100) -> TRAP
+tw_10(-150,-100) -> TRAP
+tw_10(-100,-100) -> no trap
+tw_10( -50,-100) -> TRAP
+tw_11(-150,-100) -> TRAP
+tw_11(-100,-100) -> no trap
+tw_11( -50,-100) -> TRAP
+tw_12(-150,-100) -> no trap
+tw_12(-100,-100) -> TRAP
+tw_12( -50,-100) -> TRAP
+tw_13(-150,-100) -> no trap
+tw_13(-100,-100) -> TRAP
+tw_13( -50,-100) -> TRAP
+tw_14(-150,-100) -> TRAP
+tw_14(-100,-100) -> TRAP
+tw_14( -50,-100) -> TRAP
+tw_15(-150,-100) -> TRAP
+tw_15(-100,-100) -> TRAP
+tw_15( -50,-100) -> TRAP
+tw_16(-150,-100) -> TRAP
+tw_16(-100,-100) -> no trap
+tw_16( -50,-100) -> no trap
+tw_17(-150,-100) -> TRAP
+tw_17(-100,-100) -> no trap
+tw_17( -50,-100) -> TRAP
+tw_18(-150,-100) -> TRAP
+tw_18(-100,-100) -> no trap
+tw_18( -50,-100) -> no trap
+tw_19(-150,-100) -> TRAP
+tw_19(-100,-100) -> no trap
+tw_19( -50,-100) -> TRAP
+tw_20(-150,-100) -> TRAP
+tw_20(-100,-100) -> TRAP
+tw_20( -50,-100) -> no trap
+tw_21(-150,-100) -> TRAP
+tw_21(-100,-100) -> TRAP
+tw_21( -50,-100) -> TRAP
+tw_22(-150,-100) -> TRAP
+tw_22(-100,-100) -> TRAP
+tw_22( -50,-100) -> no trap
+tw_23(-150,-100) -> TRAP
+tw_23(-100,-100) -> TRAP
+tw_23( -50,-100) -> TRAP
+tw_24(-150,-100) -> TRAP
+tw_24(-100,-100) -> no trap
+tw_24( -50,-100) -> TRAP
+tw_25(-150,-100) -> TRAP
+tw_25(-100,-100) -> no trap
+tw_25( -50,-100) -> TRAP
+tw_26(-150,-100) -> TRAP
+tw_26(-100,-100) -> no trap
+tw_26( -50,-100) -> TRAP
+tw_27(-150,-100) -> TRAP
+tw_27(-100,-100) -> no trap
+tw_27( -50,-100) -> TRAP
+tw_28(-150,-100) -> TRAP
+tw_28(-100,-100) -> TRAP
+tw_28( -50,-100) -> TRAP
+tw_29(-150,-100) -> TRAP
+tw_29(-100,-100) -> TRAP
+tw_29( -50,-100) -> TRAP
+tw_30(-150,-100) -> TRAP
+tw_30(-100,-100) -> TRAP
+tw_30( -50,-100) -> TRAP
+tw_31(-150,-100) -> TRAP
+tw_31(-100,-100) -> TRAP
+tw_31( -50,-100) -> TRAP
+td_0(-150,-100) -> no trap
+td_0(-100,-100) -> no trap
+td_0( -50,-100) -> no trap
+td_1(-150,-100) -> no trap
+td_1(-100,-100) -> no trap
+td_1( -50,-100) -> TRAP
+td_2(-150,-100) -> TRAP
+td_2(-100,-100) -> no trap
+td_2( -50,-100) -> no trap
+td_3(-150,-100) -> TRAP
+td_3(-100,-100) -> no trap
+td_3( -50,-100) -> TRAP
+td_4(-150,-100) -> no trap
+td_4(-100,-100) -> TRAP
+td_4( -50,-100) -> no trap
+td_5(-150,-100) -> no trap
+td_5(-100,-100) -> TRAP
+td_5( -50,-100) -> TRAP
+td_6(-150,-100) -> TRAP
+td_6(-100,-100) -> TRAP
+td_6( -50,-100) -> no trap
+td_7(-150,-100) -> TRAP
+td_7(-100,-100) -> TRAP
+td_7( -50,-100) -> TRAP
+td_8(-150,-100) -> no trap
+td_8(-100,-100) -> no trap
+td_8( -50,-100) -> TRAP
+td_9(-150,-100) -> no trap
+td_9(-100,-100) -> no trap
+td_9( -50,-100) -> TRAP
+td_10(-150,-100) -> TRAP
+td_10(-100,-100) -> no trap
+td_10( -50,-100) -> TRAP
+td_11(-150,-100) -> TRAP
+td_11(-100,-100) -> no trap
+td_11( -50,-100) -> TRAP
+td_12(-150,-100) -> no trap
+td_12(-100,-100) -> TRAP
+td_12( -50,-100) -> TRAP
+td_13(-150,-100) -> no trap
+td_13(-100,-100) -> TRAP
+td_13( -50,-100) -> TRAP
+td_14(-150,-100) -> TRAP
+td_14(-100,-100) -> TRAP
+td_14( -50,-100) -> TRAP
+td_15(-150,-100) -> TRAP
+td_15(-100,-100) -> TRAP
+td_15( -50,-100) -> TRAP
+td_16(-150,-100) -> TRAP
+td_16(-100,-100) -> no trap
+td_16( -50,-100) -> no trap
+td_17(-150,-100) -> TRAP
+td_17(-100,-100) -> no trap
+td_17( -50,-100) -> TRAP
+td_18(-150,-100) -> TRAP
+td_18(-100,-100) -> no trap
+td_18( -50,-100) -> no trap
+td_19(-150,-100) -> TRAP
+td_19(-100,-100) -> no trap
+td_19( -50,-100) -> TRAP
+td_20(-150,-100) -> TRAP
+td_20(-100,-100) -> TRAP
+td_20( -50,-100) -> no trap
+td_21(-150,-100) -> TRAP
+td_21(-100,-100) -> TRAP
+td_21( -50,-100) -> TRAP
+td_22(-150,-100) -> TRAP
+td_22(-100,-100) -> TRAP
+td_22( -50,-100) -> no trap
+td_23(-150,-100) -> TRAP
+td_23(-100,-100) -> TRAP
+td_23( -50,-100) -> TRAP
+td_24(-150,-100) -> TRAP
+td_24(-100,-100) -> no trap
+td_24( -50,-100) -> TRAP
+td_25(-150,-100) -> TRAP
+td_25(-100,-100) -> no trap
+td_25( -50,-100) -> TRAP
+td_26(-150,-100) -> TRAP
+td_26(-100,-100) -> no trap
+td_26( -50,-100) -> TRAP
+td_27(-150,-100) -> TRAP
+td_27(-100,-100) -> no trap
+td_27( -50,-100) -> TRAP
+td_28(-150,-100) -> TRAP
+td_28(-100,-100) -> TRAP
+td_28( -50,-100) -> TRAP
+td_29(-150,-100) -> TRAP
+td_29(-100,-100) -> TRAP
+td_29( -50,-100) -> TRAP
+td_30(-150,-100) -> TRAP
+td_30(-100,-100) -> TRAP
+td_30( -50,-100) -> TRAP
+td_31(-150,-100) -> TRAP
+td_31(-100,-100) -> TRAP
+td_31( -50,-100) -> TRAP
Added: trunk/none/tests/ppc64/tw_td.vgtest
===================================================================
--- trunk/none/tests/ppc64/tw_td.vgtest (rev 0)
+++ trunk/none/tests/ppc64/tw_td.vgtest 2007-09-01 23:16:49 UTC (rev 6796)
@@ -0,0 +1 @@
+prog: tw_td
|
|
From: <sv...@va...> - 2007-09-01 19:43:07
|
Author: sewardj
Date: 2007-09-01 20:43:08 +0100 (Sat, 01 Sep 2007)
New Revision: 6795
Log:
Update list-of-known-sins :-)
Modified:
trunk/docs/internals/3_2_BUGSTATUS.txt
Modified: trunk/docs/internals/3_2_BUGSTATUS.txt
===================================================================
--- trunk/docs/internals/3_2_BUGSTATUS.txt 2007-09-01 18:58:54 UTC (rev 6794)
+++ trunk/docs/internals/3_2_BUGSTATUS.txt 2007-09-01 19:43:08 UTC (rev 6795)
@@ -10,11 +10,14 @@
Vfd = fix has been verified on 3.2.X branch
s93 = possible SuSE 9.3 amd64 assembler bug
-x86_linux_REDIR_FOR_index() broken (Fri Jul 27)
+r6783/6784 x86_linux_REDIR_FOR_index() broken (Fri Jul 27)
priv/guest-amd64/toIR.c:2512 (dis_op2_E_G): Assertion `0' failed.
(Michael Abshoff, users@, Sat Aug 11)
+(vx1786, r6791) x86 INT insn (29 June) (INT (0xCD) 0x40 - 0x43)
+
+
145622 --db-attach broken again on x86-64
145887 PPC32: getitimer() system call is not supported
146252 amd64->IR: handle Group 5 extended CALL and JMP insns
@@ -25,10 +28,10 @@
147498 amd64->IR: 0xF0 0xF 0xB0 0xF (lock cmpxchg %cl,(%rdi))
147628 SALC opcode 0xd6 unimplemented
145609 valgrind aborts all runs with 'repeated section!'
-147825 crash on amd64-linux with gcc 4.2 and glibc 2.6 (CFI)
+147825 r6793 crash on amd64-linux with gcc 4.2 and glibc 2.6 (CFI)
148096 VALGRIND_MALLOCLIKE_BLOCK not working correctly?
148174 Incorrect type of freed_list_volume causes
- assertion with large memory allocations
+ assertion with large memory allocations
148254 crash writing global var on ppc64 from instrumentation fn
148363 amd64->IR: 0x65 0x4C 0x8B 0x1C (mov %gs:0x10,%r11)
148742 cantrepro Leak-check fails assert on exit
@@ -37,9 +40,9 @@
146701 ==134990
148984 valid? unhandled instruction bytes: 0xF3 0xDD 0x6 0xF3
148447 vx1776 x86_64 : new NOP codes: 66 66 66 66 2e 0f 1f
-149182 pending PPC Trap instructions not implemented in valgrind
+149182 vx1784/5 PPC Trap instructions not implemented in valgrind
+137714 vx1787 (maskmovq, maskmovdq - reopened for amd64)
-
---------- Bugs reported after (in) 3.2.3 --------------------------
//// possibly fix these for a 3.2.4 ?
|
|
From: <sv...@va...> - 2007-09-01 18:59:57
|
Author: sewardj
Date: 2007-09-01 19:59:53 +0100 (Sat, 01 Sep 2007)
New Revision: 1787
Log:
Implement maskmovq and maskmovdq.
Modified:
trunk/priv/guest-amd64/toIR.c
trunk/priv/host-amd64/isel.c
Modified: trunk/priv/guest-amd64/toIR.c
===================================================================
--- trunk/priv/guest-amd64/toIR.c 2007-08-29 09:09:17 UTC (rev 1786)
+++ trunk/priv/guest-amd64/toIR.c 2007-09-01 18:59:53 UTC (rev 1787)
@@ -6631,6 +6631,38 @@
break;
}
+ case 0xF7: {
+ IRTemp addr = newTemp(Ity_I64);
+ IRTemp regD = newTemp(Ity_I64);
+ IRTemp regM = newTemp(Ity_I64);
+ IRTemp mask = newTemp(Ity_I64);
+ IRTemp olddata = newTemp(Ity_I64);
+ IRTemp newdata = newTemp(Ity_I64);
+
+ modrm = getUChar(delta);
+ if (sz != 4 || (!epartIsReg(modrm)))
+ goto mmx_decode_failure;
+ delta++;
+
+ assign( addr, handleAddrOverrides( pfx, getIReg64(R_RDI) ));
+ assign( regM, getMMXReg( eregLO3ofRM(modrm) ));
+ assign( regD, getMMXReg( gregLO3ofRM(modrm) ));
+ assign( mask, binop(Iop_SarN8x8, mkexpr(regM), mkU8(7)) );
+ assign( olddata, loadLE( Ity_I64, mkexpr(addr) ));
+ assign( newdata,
+ binop(Iop_Or64,
+ binop(Iop_And64,
+ mkexpr(regD),
+ mkexpr(mask) ),
+ binop(Iop_And64,
+ mkexpr(olddata),
+ unop(Iop_Not64, mkexpr(mask)))) );
+ storeLE( mkexpr(addr), mkexpr(newdata) );
+ DIP("maskmovq %s,%s\n", nameMMXReg( eregLO3ofRM(modrm) ),
+ nameMMXReg( gregLO3ofRM(modrm) ) );
+ break;
+ }
+
/* --- MMX decode failure --- */
default:
mmx_decode_failure:
@@ -8906,6 +8938,17 @@
goto decode_success;
}
+ /* ***--- this is an MMX class insn introduced in SSE1 ---*** */
+ /* 0F F7 = MASKMOVQ -- 8x8 masked store */
+ if (haveNo66noF2noF3(pfx) && sz == 4
+ && insn[0] == 0x0F && insn[1] == 0xF7) {
+ Bool ok = False;
+ delta = dis_MMX( &ok, pfx, sz, delta+1 );
+ if (!ok)
+ goto decode_failure;
+ goto decode_success;
+ }
+
/* 0F 5F = MAXPS -- max 32Fx4 from R/M to R */
if (haveNo66noF2noF3(pfx) && sz == 4
&& insn[0] == 0x0F && insn[1] == 0x5F) {
@@ -10596,6 +10639,51 @@
goto decode_failure;
}
+ /* 66 0F F7 = MASKMOVDQU -- store selected bytes of double quadword */
+ if (have66noF2noF3(pfx) && sz == 2
+ && insn[0] == 0x0F && insn[1] == 0xF7) {
+ modrm = getUChar(delta+2);
+ if (epartIsReg(modrm)) {
+ IRTemp regD = newTemp(Ity_V128);
+ IRTemp mask = newTemp(Ity_V128);
+ IRTemp olddata = newTemp(Ity_V128);
+ IRTemp newdata = newTemp(Ity_V128);
+ addr = newTemp(Ity_I64);
+
+ assign( addr, handleAddrOverrides( pfx, getIReg64(R_RDI) ));
+ assign( regD, getXMMReg( gregOfRexRM(pfx,modrm) ));
+
+ /* Unfortunately can't do the obvious thing with SarN8x16
+ here since that can't be re-emitted as SSE2 code - no such
+ insn. */
+ assign(
+ mask,
+ binop(Iop_64HLtoV128,
+ binop(Iop_SarN8x8,
+ getXMMRegLane64( eregOfRexRM(pfx,modrm), 1 ),
+ mkU8(7) ),
+ binop(Iop_SarN8x8,
+ getXMMRegLane64( eregOfRexRM(pfx,modrm), 0 ),
+ mkU8(7) ) ));
+ assign( olddata, loadLE( Ity_V128, mkexpr(addr) ));
+ assign( newdata,
+ binop(Iop_OrV128,
+ binop(Iop_AndV128,
+ mkexpr(regD),
+ mkexpr(mask) ),
+ binop(Iop_AndV128,
+ mkexpr(olddata),
+ unop(Iop_NotV128, mkexpr(mask)))) );
+ storeLE( mkexpr(addr), mkexpr(newdata) );
+
+ delta += 2+1;
+ DIP("maskmovdqu %s,%s\n", nameXMMReg( eregOfRexRM(pfx,modrm) ),
+ nameXMMReg( gregOfRexRM(pfx,modrm) ) );
+ goto decode_success;
+ }
+ /* else fall through */
+ }
+
/* 66 0F E7 = MOVNTDQ -- for us, just a plain SSE store. */
if (have66noF2noF3(pfx) && sz == 2
&& insn[0] == 0x0F && insn[1] == 0xE7) {
Modified: trunk/priv/host-amd64/isel.c
===================================================================
--- trunk/priv/host-amd64/isel.c 2007-08-29 09:09:17 UTC (rev 1786)
+++ trunk/priv/host-amd64/isel.c 2007-09-01 18:59:53 UTC (rev 1787)
@@ -1111,6 +1111,10 @@
fn = (HWord)h_generic_calc_SarN16x4;
second_is_UInt = True;
break;
+ case Iop_SarN8x8:
+ fn = (HWord)h_generic_calc_SarN8x8;
+ second_is_UInt = True;
+ break;
default:
fn = (HWord)0; break;
|
|
From: <sv...@va...> - 2007-09-01 18:58:59
|
Author: sewardj
Date: 2007-09-01 19:58:54 +0100 (Sat, 01 Sep 2007)
New Revision: 6794
Log:
Add regtest for amd64 implementation of maskmovq and maskmovdq.
Added:
trunk/none/tests/amd64/bug137714-amd64.c
trunk/none/tests/amd64/bug137714-amd64.stderr.exp
trunk/none/tests/amd64/bug137714-amd64.stdout.exp
trunk/none/tests/amd64/bug137714-amd64.vgtest
Modified:
trunk/none/tests/amd64/Makefile.am
Modified: trunk/none/tests/amd64/Makefile.am
===================================================================
--- trunk/none/tests/amd64/Makefile.am 2007-08-31 23:08:39 UTC (rev 6793)
+++ trunk/none/tests/amd64/Makefile.am 2007-09-01 18:58:54 UTC (rev 6794)
@@ -15,6 +15,8 @@
bug127521-64.vgtest bug127521-64.stdout.exp bug127521-64.stderr.exp \
bug132813-amd64.vgtest bug132813-amd64.stdout.exp \
bug132813-amd64.stderr.exp \
+ bug137714-amd64.vgtest bug137714-amd64.stdout.exp \
+ bug137714-amd64.stderr.exp \
bug132918.vgtest bug132918.stderr.exp bug132918.stdout.exp \
clc.vgtest clc.stdout.exp clc.stderr.exp \
faultstatus.disabled faultstatus.stderr.exp \
@@ -36,7 +38,7 @@
check_PROGRAMS = \
- bug127521-64 bug132813-amd64 bug132918 \
+ bug127521-64 bug132813-amd64 bug137714-amd64 bug132918 \
clc \
faultstatus fcmovnu fxtract $(INSN_TESTS) looper jrcxz \
rcl-amd64 smc1 shrld \
Added: trunk/none/tests/amd64/bug137714-amd64.c
===================================================================
--- trunk/none/tests/amd64/bug137714-amd64.c (rev 0)
+++ trunk/none/tests/amd64/bug137714-amd64.c 2007-09-01 18:58:54 UTC (rev 6794)
@@ -0,0 +1,110 @@
+
+#include <stdio.h>
+#include <malloc.h>
+#include <assert.h>
+
+typedef unsigned char UChar;
+typedef unsigned int UInt;
+
+static UInt randomUInt ( void )
+{
+ static UInt n = 0;
+ /* From "Numerical Recipes in C" 2nd Edition */
+ n = 1664525UL * n + 1013904223UL;
+ return n >> 17;
+}
+
+void maskmovq_mmx ( UChar* regL, UChar* regR )
+{
+ int i;
+ UChar* dst = malloc(8);
+ assert(dst);
+ for (i = 0; i < 8; i++)
+ dst[i] = 17 * (i+1);
+ __asm__ __volatile__(
+ "emms\n\t"
+ "movq (%0), %%mm1\n\t"
+ "movq (%1), %%mm2\n\t"
+ "movq %2, %%rdi\n\t"
+ "maskmovq %%mm1,%%mm2"
+ : /*out*/
+ : /*in*/ "r"(regL), "r"(regR), "r"(&dst[0])
+ : /*trash*/ "rdi", "memory", "cc"
+ );
+ for (i = 0; i < 8; i++)
+ printf("%02x", dst[i]);
+ free(dst);
+}
+
+void maskmovdqu_sse ( UChar* regL, UChar* regR )
+{
+ int i;
+ UChar* dst = malloc(16);
+ assert(dst);
+ for (i = 0; i < 16; i++)
+ dst[i] = i;
+ __asm__ __volatile__(
+ "movups (%0), %%xmm1\n\t"
+ "movups (%1), %%xmm12\n\t"
+ "movq %2, %%rdi\n\t"
+ "maskmovdqu %%xmm12,%%xmm1\n\t"
+ "sfence"
+ : /*out*/
+ : /*in*/ "r"(regL), "r"(regR), "r"(dst)
+ : /*trash*/ "rdi", "memory", "cc"
+ );
+ for (i = 0; i < 16; i++)
+ printf("%02x", dst[i]);
+ free(dst);
+}
+
+int main ( int argc, char** argv )
+{
+ int i, j;
+
+ /* mmx test */
+ {
+ UChar* regL = malloc(8);
+ UChar* regR = malloc(8);
+ assert(regL);
+ assert(regR);
+ for (i = 0; i < 10; i++) {
+ for (j = 0; j < 8; j++) {
+ regL[j] = (UChar)randomUInt();
+ printf("%02x", regL[j]);
+ }
+ printf(" ");
+ for (j = 0; j < 8; j++) {
+ regR[j] = (UChar)randomUInt();
+ printf("%02x", regR[j]);
+ }
+ printf(" ");
+ maskmovq_mmx( regR, regL );
+ printf("\n");
+ }
+ }
+
+ /* sse test */
+ {
+ UChar* regL = malloc(16);
+ UChar* regR = malloc(16);
+ assert(regL);
+ assert(regR);
+ for (i = 0; i < 10; i++) {
+ for (j = 0; j < 16; j++) {
+ regL[j] = (UChar)randomUInt();
+ printf("%02x", regL[j]);
+ }
+ printf(" ");
+ for (j = 0; j < 16; j++) {
+ regR[j] = (UChar)randomUInt();
+ printf("%02x", regR[j]);
+ }
+ printf(" ");
+ maskmovdqu_sse( regR, regL );
+ printf("\n");
+ }
+ }
+
+ return 0;
+}
Added: trunk/none/tests/amd64/bug137714-amd64.stderr.exp
===================================================================
Added: trunk/none/tests/amd64/bug137714-amd64.stdout.exp
===================================================================
--- trunk/none/tests/amd64/bug137714-amd64.stdout.exp (rev 0)
+++ trunk/none/tests/amd64/bug137714-amd64.stdout.exp 2007-09-01 18:58:54 UTC (rev 6794)
@@ -0,0 +1,20 @@
+37a8e67c2997ffec fe78fb68914bdde3 3722e6442966ffec
+96e427842e563da3 96f9e55dff19ead5 96e427442e663da3
+773ce009050f014e d4ed3569860c2f4a 773c334405667788
+a945b466477ff7b0 97b91f34d1b2e952 a9453344477ff788
+1e366994ad06eb2b e163f80ba73973a1 1e226944ad66772b
+e5e4e32e0ea1cbc2 d19434d8f1704b89 e5e4332e0e6677c2
+2fc8266f63f0a218 a9906724b7c60dfd 2fc8334463f07718
+4df75731c5319d6f c93f471b234a758f 4d2233445566776f
+af27bbf06c4208a9 b127a8877ca85f72 af22bbf055427788
+e5b0b5c4b1a25149 026e7dd32b31c977 112233c455665188
+a187cb690d7004717ddbdd08b9d3cf13 b244a13a1769cce401d5fbd2ce1bad57 b244a1030405060708d5fb0bce1bad0f
+0a1cfc3088ed770590622b7c323ac0f5 b8e7bfe739f9f1d64928e2eecefc8440 0001bf0339f9060749090a0b0c0d8440
+ed1af098222d47f96e6eb6b5abd1972c facdb31f5dc7a4b05f1b59faf0c7b349 fa01b31f040506b0080959faf0c7b30f
+4fb54cf520a557e09db4a189e78cb6cb 7d2a2036c545ca09c76183caf9709d84 002a023604450609c76183caf9709d84
+3421b49cc4c88b4f9ee812caac6083e7 4431ab81b7ea467304b08333abeca606 0001ab81b7ea460704b00a33ab0da606
+9f91cbdf540ac8d9f8be2b4ebd416193 5418f8527527fc839aba7e07cc2e32e2 5418f8520405fc839aba0a0bcc0d0ee2
+943b371413e0f0142cea11e8de22b5e5 b011abff4572d1cd0e35981c1e2aa62d b00102030472d10708350a1c1e0da62d
+18529a8e44bdea91c120e76dd3f7e2ef 5d5267db693fa7e4e4d3f44567d565fb 000167db043fa7e4e409f40b67d565fb
+2f0999a12d1697e73814d3af60b54cc5 5e0dd23a2701645d9f49b7566923d35f 0001d23a0405645d0809b7560c230e5f
+dc95d7a1105edda81879f784494f577c b8778e70c22ceccbc34b0623ea06556e b8778e700405eccb080906230c0d0e0f
Added: trunk/none/tests/amd64/bug137714-amd64.vgtest
===================================================================
--- trunk/none/tests/amd64/bug137714-amd64.vgtest (rev 0)
+++ trunk/none/tests/amd64/bug137714-amd64.vgtest 2007-09-01 18:58:54 UTC (rev 6794)
@@ -0,0 +1,2 @@
+prog: bug137714-amd64
+vgopts: -q
|
|
From: <js...@ac...> - 2007-09-01 14:00:16
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2007-09-01 09:00:02 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 == 219 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/round (stdout) none/tests/ppc32/round (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) ================================================= == 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 == 219 tests, 10 stderr failures, 8 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/round (stdout) none/tests/ppc32/round (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) none/tests/pth_detached (stdout) none/tests/tls (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sat Sep 1 09:16:21 2007 --- new.short Sat Sep 1 09:28:46 2007 *************** *** 8,10 **** ! == 219 tests, 10 stderr failures, 8 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) --- 8,10 ---- ! == 219 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) *************** *** 25,28 **** none/tests/ppc32/test_gx (stdout) - none/tests/pth_detached (stdout) - none/tests/tls (stdout) --- 25,26 ---- |
|
From: Nicholas N. <nj...@cs...> - 2007-09-01 09:17:51
|
On Fri, 31 Aug 2007, Dilip Malinur Ramesh wrote: > I am trying to port Valgrind to Renesas SuperH targets. Using the > resources available on the Valgrind.org, I understood that there entire > Valgrind can be logically divided as Core and VEX implementation. > > Is my understanding correct? > > If I have to take up this porting activity, how should I have to go > about (like legal terms, SVN access etc)? > > If needed, where can I get additional resources or help (apart from > mailing list)? > > Please give me your valuable advice. You've sent this email before, and I already replied on August 30. Nick |
|
From: Nicholas N. <nj...@cs...> - 2007-09-01 09:11:35
|
On Sat, 31 Aug 2007, Greg Parker wrote:
> Where's the code that sets the definedness bits for syscall results?
> (e.g. eax on linux-x86, r3+cr0 on linux-ppc64, etc)
>
> darwin-x86 expects results in eax, edx, and eflags.c. I've missed
> something somewhere, because if eflags is marked undefined before
> the syscall then memcheck complains about the error-checking code
> after the syscall. I can't find the analogous code for other CPUs.
I think it's this, around line 1059 in coregrind/m_syswrap/syswrap-main.c:
/* Tell the tool that the assignment has occurred, so it can update
shadow regs as necessary. */
VG_TRACK( post_reg_write, Vg_CoreSysCall, tid, layout.o_retval,
sizeof(UWord) );
It assumes only a single return value from syscalls, so you'll need to
generalise it. You're probably used to doing that by now, though :)
> (Darwin update: I'm working towards a Leopard-i386 open-source
> release as soon after Leopard ships as possible.)
Yay! Roughly when would that be?
Nick
|