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
(1) |
|
2
(28) |
3
(21) |
4
(27) |
5
(22) |
6
(24) |
7
(25) |
8
(21) |
|
9
(18) |
10
(20) |
11
(10) |
12
(36) |
13
(18) |
14
(18) |
15
(29) |
|
16
(17) |
17
(7) |
18
(11) |
19
(17) |
20
(18) |
21
(12) |
22
(13) |
|
23
(9) |
24
(8) |
25
(7) |
26
(22) |
27
(18) |
28
(9) |
29
(15) |
|
30
(13) |
31
(7) |
|
|
|
|
|
|
From: <sv...@va...> - 2005-10-29 22:30:53
|
Author: sewardj
Date: 2005-10-29 23:30:47 +0100 (Sat, 29 Oct 2005)
New Revision: 1426
Log:
Tidy up a couple of format strings.
Modified:
trunk/Makefile-icc
trunk/priv/guest-amd64/toIR.c
trunk/priv/host-ppc32/hdefs.c
Modified: trunk/Makefile-icc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/Makefile-icc 2005-10-29 19:19:51 UTC (rev 1425)
+++ trunk/Makefile-icc 2005-10-29 22:30:47 UTC (rev 1426)
@@ -70,7 +70,7 @@
# $(EXTRA_CFLAGS)
=20
CC =3D icc
-CCFLAGS =3D -g -Wall -wd981 -wd279 -wd1287 -wd869 -wd111 -wd188 -wd186
+CCFLAGS =3D -g -Wall -wd981 -wd279 -wd1287 -wd869 -wd111 -wd188 -wd186 -=
wd810
# 981: operands are evaluated in unspecified order
# 279: controlling expression is constant
# 1287: invalid attribute for parameter
@@ -79,8 +79,8 @@
# 188: enumerated type mixed with another type
# (the above are for icc 8.0 -- 8.0.0.55 I think)
# 186: pointless comparison of unsigned integer with zero
+# 810: conversion from ... to ... may lose significant bits
=20
-
all: vex
=20
scratch: clean version all
Modified: trunk/priv/guest-amd64/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-amd64/toIR.c 2005-10-29 19:19:51 UTC (rev 1425)
+++ trunk/priv/guest-amd64/toIR.c 2005-10-29 22:30:47 UTC (rev 1426)
@@ -5406,7 +5406,7 @@
=20
case 0xE0 ... 0xE7: /* FUCOM %st(0),%st(?) */
r_dst =3D (UInt)modrm - 0xE0;
- DIP("fucom %%st(0),%%st(%d)\n", r_dst);
+ DIP("fucom %%st(0),%%st(%u)\n", r_dst);
/* This forces C1 to zero, which isn't right. */
put_C3210(
unop(Iop_32Uto64,=20
Modified: trunk/priv/host-ppc32/hdefs.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/host-ppc32/hdefs.c 2005-10-29 19:19:51 UTC (rev 1425)
+++ trunk/priv/host-ppc32/hdefs.c 2005-10-29 22:30:47 UTC (rev 1426)
@@ -1421,7 +1421,7 @@
vex_printf(",");
ppPPC32VI5s(i->Pin.AvSplat.src);
if (i->Pin.AvSplat.src->tag =3D=3D Pvi_Reg)
- vex_printf(", %u", (128/sz)-1); /* louis lane */
+ vex_printf(", %d", (128/sz)-1); /* louis lane */
return;
}
=20
|
|
From: <sv...@va...> - 2005-10-29 19:19:56
|
Author: sewardj
Date: 2005-10-29 20:19:51 +0100 (Sat, 29 Oct 2005)
New Revision: 1425
Log:
x86 front end: implement in/out insns.
Modified:
trunk/priv/guest-x86/gdefs.h
trunk/priv/guest-x86/ghelpers.c
trunk/priv/guest-x86/toIR.c
Modified: trunk/priv/guest-x86/gdefs.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-x86/gdefs.h 2005-10-22 12:49:49 UTC (rev 1424)
+++ trunk/priv/guest-x86/gdefs.h 2005-10-29 19:19:51 UTC (rev 1425)
@@ -156,6 +156,10 @@
=20
extern ULong x86g_dirtyhelper_RDTSC ( void );
=20
+extern UInt x86g_dirtyhelper_IN ( UInt portno, UInt sz/*1,2 or 4*/ );
+extern void x86g_dirtyhelper_OUT ( UInt portno, UInt data,=20
+ UInt sz/*1,2 or 4*/ );
+
extern VexEmWarn
x86g_dirtyhelper_FRSTOR ( VexGuestX86State*, HWord );
=20
Modified: trunk/priv/guest-x86/ghelpers.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-x86/ghelpers.c 2005-10-22 12:49:49 UTC (rev 1424)
+++ trunk/priv/guest-x86/ghelpers.c 2005-10-29 19:19:51 UTC (rev 1425)
@@ -1882,6 +1882,66 @@
}
=20
=20
+/* CALLED FROM GENERATED CODE */
+/* DIRTY HELPER (non-referentially-transparent) */
+/* Horrible hack. On non-x86 platforms, return 0. */
+UInt x86g_dirtyhelper_IN ( UInt portno, UInt sz/*1,2 or 4*/ )
+{
+# if defined(__i386__)
+ UInt r =3D 0;
+ portno &=3D 0xFFFF;
+ switch (sz) {
+ case 4:=20
+ __asm__ __volatile__("movl $0,%%eax; inl %w1,%0"=20
+ : "=3Da" (r) : "Nd" (portno));
+ break;
+ case 2:=20
+ __asm__ __volatile__("movl $0,%%eax; inw %w1,%w0"=20
+ : "=3Da" (r) : "Nd" (portno));
+ break;
+ case 1:=20
+ __asm__ __volatile__("movl $0,%%eax; inb %w1,%b0"=20
+ : "=3Da" (r) : "Nd" (portno));
+ break;
+ default:
+ break;
+ }
+ return r;
+# else
+ return 0;
+# endif
+}
+
+
+/* CALLED FROM GENERATED CODE */
+/* DIRTY HELPER (non-referentially-transparent) */
+/* Horrible hack. On non-x86 platforms, do nothing. */
+void x86g_dirtyhelper_OUT ( UInt portno, UInt data, UInt sz/*1,2 or 4*/ =
)
+{
+# if defined(__i386__)
+ portno &=3D 0xFFFF;
+ switch (sz) {
+ case 4:=20
+ __asm__ __volatile__("outl %0, %w1"=20
+ : : "a" (data), "Nd" (portno));
+ break;
+ case 2:=20
+ __asm__ __volatile__("outw %w0, %w1"=20
+ : : "a" (data), "Nd" (portno));
+ break;
+ case 1:=20
+ __asm__ __volatile__("outb %b0, %w1"=20
+ : : "a" (data), "Nd" (portno));
+ break;
+ default:
+ break;
+ }
+# else
+ return 0;
+# endif
+}
+
+
/*---------------------------------------------------------------*/
/*--- Helpers for MMX/SSE/SSE2. ---*/
/*---------------------------------------------------------------*/
Modified: trunk/priv/guest-x86/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-x86/toIR.c 2005-10-22 12:49:49 UTC (rev 1424)
+++ trunk/priv/guest-x86/toIR.c 2005-10-29 19:19:51 UTC (rev 1425)
@@ -11602,79 +11602,103 @@
//--=20
//-- DIP("xlat%c [ebx]\n", nameISize(sz));
//-- break;
-//--=20
-//-- /* ------------------------ IN / OUT ----------------------- */
-//--=20
-//-- case 0xE4: /* IN ib, %al */
-//-- case 0xE5: /* IN ib, %{e}ax */
-//-- case 0xEC: /* IN (%dx),%al */
-//-- case 0xED: /* IN (%dx),%{e}ax */
-//-- t1 =3D newTemp(cb);
-//-- t2 =3D newTemp(cb);
-//-- t3 =3D newTemp(cb);
-//--=20
-//-- uInstr0(cb, CALLM_S, 0);
-//-- /* operand size? */
-//-- uInstr2(cb, MOV, 4, Literal, 0, TempReg, t1);
-//-- uLiteral(cb, ( opc =3D=3D 0xE4 || opc =3D=3D 0xEC ) ? 1 : sz)=
;
-//-- uInstr1(cb, PUSH, 4, TempReg, t1);
-//-- /* port number ? */
-//-- if ( opc =3D=3D 0xE4 || opc =3D=3D 0xE5 ) {
-//-- abyte =3D getUChar(eip); eip++;
-//-- uInstr2(cb, MOV, 4, Literal, 0, TempReg, t2);
-//-- uLiteral(cb, abyte);
-//-- }
-//-- else
-//-- uInstr2(cb, GET, 4, ArchReg, R_EDX, TempReg, t2);
-//--=20
-//-- uInstr1(cb, PUSH, 4, TempReg, t2);
-//-- uInstr1(cb, CALLM, 0, Lit16, VGOFF_(helper_IN));
-//-- uFlagsRWU(cb, FlagsEmpty, FlagsEmpty, FlagsEmpty);
-//-- uInstr1(cb, POP, 4, TempReg, t2);
-//-- uInstr1(cb, CLEAR, 0, Lit16, 4);
-//-- uInstr0(cb, CALLM_E, 0);
-//-- uInstr2(cb, PUT, 4, TempReg, t2, ArchReg, R_EAX);
-//-- if ( opc =3D=3D 0xE4 || opc =3D=3D 0xE5 ) {
-//-- DIP("in 0x%x, %%eax/%%ax/%%al\n", getUChar(eip-1) );
-//-- } else {
-//-- DIP("in (%%dx), %%eax/%%ax/%%al\n");
-//-- }
-//-- break;
-//-- case 0xE6: /* OUT %al,ib */
-//-- case 0xE7: /* OUT %{e}ax,ib */
-//-- case 0xEE: /* OUT %al,(%dx) */
-//-- case 0xEF: /* OUT %{e}ax,(%dx) */
-//-- t1 =3D newTemp(cb);
-//-- t2 =3D newTemp(cb);
-//-- t3 =3D newTemp(cb);
-//--=20
-//-- uInstr0(cb, CALLM_S, 0);
-//-- /* operand size? */
-//-- uInstr2(cb, MOV, 4, Literal, 0, TempReg, t1);
-//-- uLiteral(cb, ( opc =3D=3D 0xE6 || opc =3D=3D 0xEE ) ? 1 : sz)=
;
-//-- uInstr1(cb, PUSH, 4, TempReg, t1);
-//-- /* port number ? */
-//-- if ( opc =3D=3D 0xE6 || opc =3D=3D 0xE7 ) {
-//-- abyte =3D getUChar(eip); eip++;
-//-- uInstr2(cb, MOV, 4, Literal, 0, TempReg, t2);
-//-- uLiteral(cb, abyte);
-//-- }
-//-- else
-//-- uInstr2(cb, GET, 4, ArchReg, R_EDX, TempReg, t2);
-//-- uInstr1(cb, PUSH, 4, TempReg, t2);
-//-- uInstr2(cb, GET, 4, ArchReg, R_EAX, TempReg, t3);
-//-- uInstr1(cb, PUSH, 4, TempReg, t3);
-//-- uInstr1(cb, CALLM, 0, Lit16, VGOFF_(helper_OUT));
-//-- uFlagsRWU(cb, FlagsEmpty, FlagsEmpty, FlagsEmpty);
-//-- uInstr1(cb, CLEAR, 0, Lit16, 12);
-//-- uInstr0(cb, CALLM_E, 0);
-//-- if ( opc =3D=3D 0xE4 || opc =3D=3D 0xE5 ) {
-//-- DIP("out %%eax/%%ax/%%al, 0x%x\n", getUChar(eip-1) );
-//-- } else {
-//-- DIP("out %%eax/%%ax/%%al, (%%dx)\n");
-//-- }
-//-- break;
=20
+ /* ------------------------ IN / OUT ----------------------- */
+
+ case 0xE4: /* IN imm8, AL */
+ sz =3D 1;=20
+ t1 =3D newTemp(Ity_I32);
+ abyte =3D getIByte(delta); delta++;
+ assign(t1, mkU32( abyte & 0xFF ));
+ DIP("in%c $%d,%s\n", nameISize(sz), (Int)abyte, nameIReg(sz,R_EAX)=
);
+ goto do_IN;
+ case 0xE5: /* IN imm8, eAX */
+ vassert(sz =3D=3D 2 || sz =3D=3D 4);
+ t1 =3D newTemp(Ity_I32);
+ abyte =3D getIByte(delta); delta++;
+ assign(t1, mkU32( abyte & 0xFF ));
+ DIP("in%c $%d,%s\n", nameISize(sz), (Int)abyte, nameIReg(sz,R_EAX)=
);
+ goto do_IN;
+ case 0xEC: /* IN %DX, AL */
+ sz =3D 1;=20
+ t1 =3D newTemp(Ity_I32);
+ assign(t1, unop(Iop_16Uto32, getIReg(2, R_EDX)));
+ DIP("in%c %s,%s\n", nameISize(sz), nameIReg(2,R_EDX),=20
+ nameIReg(sz,R_EAX));
+ goto do_IN;
+ case 0xED: /* IN %DX, eAX */
+ vassert(sz =3D=3D 2 || sz =3D=3D 4);
+ t1 =3D newTemp(Ity_I32);
+ assign(t1, unop(Iop_16Uto32, getIReg(2, R_EDX)));
+ DIP("in%c %s,%s\n", nameISize(sz), nameIReg(2,R_EDX),=20
+ nameIReg(sz,R_EAX));
+ goto do_IN;
+ do_IN: {
+ /* At this point, sz indicates the width, and t1 is a 32-bit
+ value giving port number. */
+ IRDirty* d;
+ vassert(sz =3D=3D 1 || sz =3D=3D 2 || sz =3D=3D 4);
+ ty =3D szToITy(sz);
+ t2 =3D newTemp(Ity_I32);
+ d =3D unsafeIRDirty_1_N(=20
+ t2,
+ 0/*regparms*/,=20
+ "x86g_dirtyhelper_IN",=20
+ &x86g_dirtyhelper_IN,
+ mkIRExprVec_2( mkexpr(t1), mkU32(sz) )
+ );
+ /* do the call, dumping the result in t2. */
+ stmt( IRStmt_Dirty(d) );
+ putIReg(sz, R_EAX, narrowTo( ty, mkexpr(t2) ) );
+ break;
+ }
+
+ case 0xE6: /* OUT AL, imm8 */
+ sz =3D 1;
+ t1 =3D newTemp(Ity_I32);
+ abyte =3D getIByte(delta); delta++;
+ assign( t1, mkU32( abyte & 0xFF ) );
+ DIP("out%c %s,$%d\n", nameISize(sz), nameIReg(sz,R_EAX), (Int)abyt=
e);
+ goto do_OUT;
+ case 0xE7: /* OUT eAX, imm8 */
+ vassert(sz =3D=3D 2 || sz =3D=3D 4);
+ t1 =3D newTemp(Ity_I32);
+ abyte =3D getIByte(delta); delta++;
+ assign( t1, mkU32( abyte & 0xFF ) );
+ DIP("out%c %s,$%d\n", nameISize(sz), nameIReg(sz,R_EAX), (Int)abyt=
e);
+ goto do_OUT;
+ case 0xEE: /* OUT AL, %DX */
+ sz =3D 1;
+ t1 =3D newTemp(Ity_I32);
+ assign( t1, unop(Iop_16Uto32, getIReg(2, R_EDX)) );
+ DIP("out%c %s,%s\n", nameISize(sz), nameIReg(sz,R_EAX),
+ nameIReg(2,R_EDX));
+ goto do_OUT;
+ case 0xEF: /* OUT eAX, %DX */
+ vassert(sz =3D=3D 2 || sz =3D=3D 4);
+ t1 =3D newTemp(Ity_I32);
+ assign( t1, unop(Iop_16Uto32, getIReg(2, R_EDX)) );
+ DIP("out%c %s,%s\n", nameISize(sz), nameIReg(sz,R_EAX),
+ nameIReg(2,R_EDX));
+ goto do_OUT;
+ do_OUT: {
+ /* At this point, sz indicates the width, and t1 is a 32-bit
+ value giving port number. */
+ IRDirty* d;
+ vassert(sz =3D=3D 1 || sz =3D=3D 2 || sz =3D=3D 4);
+ ty =3D szToITy(sz);
+ d =3D unsafeIRDirty_0_N(=20
+ 0/*regparms*/,=20
+ "x86g_dirtyhelper_OUT",=20
+ &x86g_dirtyhelper_OUT,
+ mkIRExprVec_3( mkexpr(t1),
+ widenUto32( getIReg(sz, R_EAX) ),=20
+ mkU32(sz) )
+ );
+ stmt( IRStmt_Dirty(d) );
+ break;
+ }
+
/* ------------------------ (Grp1 extensions) ---------- */
=20
case 0x80: /* Grp1 Ib,Eb */
|
|
From: Greg P. <gp...@us...> - 2005-10-29 18:34:15
|
Julian Seward writes:
> It's pretty much as you see. The 3-space indent seems to be
> pretty good for readability. I'm pretty clueless with emacs and
> have always found its alternative ideas of indentation a pain,
> so when it's done inserting tabs and generally messing around,
> I reindent it by hand, getting rid of tabs and inserting spaces
> instead.
Add this to your .emacs file:
(add-hook 'c-mode-common-hook
#'(lambda ()
;; Use 3 space indent by default
(setq c-basic-offset 3)
;; Never insert tab characters when indenting
(setq indent-tabs-mode nil)
)
)
There's also `M-x untabify`, which changes all tab characters to
spaces in the current selection.
I use four-space indent by default, so I set up a command that
switches between three and four when I'm working on Valgrind sources.
--
Greg Parker gp...@us...
|
|
From: Nicholas N. <nj...@cs...> - 2005-10-29 15:37:08
|
On Sat, 29 Oct 2005, Julian Seward wrote: > It's pretty much as you see. The 3-space indent seems to be > pretty good for readability. I'm pretty clueless with emacs and > have always found its alternative ideas of indentation a pain, > so when it's done inserting tabs and generally messing around, > I reindent it by hand, getting rid of tabs and inserting spaces > instead. We have a lot of tabs, unfortunately, as well. They are 8 spaces. Nick |
|
From: Jeroen N. W. <jn...@xs...> - 2005-10-29 14:49:15
|
On Thu, 27 Oct 2005, Nicholas Nethercote wrote: > On Thu, 27 Oct 2005, Jeroen N. Witmond wrote: > >> Recent changes in VEX's instrumentation interface seem to allow the >> reinstatement of the full functionality of lackey. The attached patch >> attempts to do this, with the following questions: >> >> - To count the number of guest instructions, I count the number of >> Ist_IMark statements executed. Is this the correct approach? > > Yes. > >> - One additional guest instruction is still counted for each building >> block (in add_one_BB). Is this (and the comment explaining it) still >> relevant? > > I don't think so. Adding instrumentation at each IMark to count the > instruction should be enough. > Done. See attached file lk_main.c. >> - lackey still uses the word 'UInstr'. Should this be replaced by >> something like 'VEX statement'? > > Yes. > Done. > Similarly, the notion of basic block counting is no longer accurate > either, since Vex uses superblocks (single-entry, multiple-exit sequences > of code). > Lackey now counts both the number of BBs entered and the number completed. >> - In the 'switch (st->tag)' statement, the 'case Ist_Exit:' adds a deep >> copy of the statement to bb; whereas the 'default:' adds the statement >> itself. Is there a rationale behind this difference? > > I don't know. Cachegrind doesn't do deep copies like this. If you remove > the deep copy does it still work? > Without them, it still works the same. > Another thing... as this comment explains... > > /* We need to know the entry point for this bb to do this. In any > case it's pretty meaningless in the presence of bb chasing since > we may enter this function part way through an IRBB. */ > > ... calling get_fnname_if_entry() only at the start of a block might cause > the entry to the function to be missed. You could call > get_fnname_if_entry() for every instruction (ie. on every IMark) instead. > Done. In the part of lk_fini() where the counts are printed (beginning at line 190 in attached file lk_main.c), I had to change the format from %u to %llu to get it to work properly. I'm not sure that %u is the correct format for the ratios that are printed below the counts. I've also updated the Lackey manual. See attached file lk-manual.xml. Jeroen. |
|
From: Julian S. <js...@ac...> - 2005-10-29 12:36:31
|
It's pretty much as you see. The 3-space indent seems to be pretty good for readability. I'm pretty clueless with emacs and have always found its alternative ideas of indentation a pain, so when it's done inserting tabs and generally messing around, I reindent it by hand, getting rid of tabs and inserting spaces instead. J On Saturday 29 October 2005 08:22, Jeroen N. Witmond wrote: > Greetings, > > Are there any standards or guidelines on where to indent, and by how much, > in Valgrind's source code? Can anybody tell me how to instruct emacs to > implement these standards or guidelines? > > Thanks. > > Jeroen. > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by the JBoss Inc. > Get Certified Today * Register for a JBoss Training Course > Free Certification Exam for All Training Attendees Through End of 2005 > Visit http://www.jboss.com/services/certification for more information > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers |
|
From: Jeroen N. W. <jn...@xs...> - 2005-10-29 07:37:27
|
Greetings, A minor point: File memcheck/mc_main.c still contains a reference to command line option --cleanup, in mc_print_debug_usage() at line 2280. (IIRC this option was removed because VEX always performs post-instrumentation cleanup.) Jeroen. |
|
From: Jeroen N. W. <jn...@xs...> - 2005-10-29 07:22:58
|
Greetings, Are there any standards or guidelines on where to indent, and by how much, in Valgrind's source code? Can anybody tell me how to instruct emacs to implement these standards or guidelines? Thanks. Jeroen. |
|
From: <js...@ac...> - 2005-10-29 02:52:16
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2005-10-29 03:30:00 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 201 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: <js...@ac...> - 2005-10-29 02:44:36
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2005-10-29 04:40:01 CEST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 170 tests, 20 stderr failures, 2 stdout failures ================= memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/supp1 (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) cachegrind/tests/chdir (stderr) cachegrind/tests/dlclose (stderr) massif/tests/toobig-allocs (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/fdleak_ipv4 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <to...@co...> - 2005-10-29 02:40:22
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2005-10-29 03:30:05 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 == 203 tests, 12 stderr failures, 4 stdout failures ================= memcheck/tests/exitprog (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/map_unmap (stdout) none/tests/map_unmap (stderr) none/tests/mremap2 (stdout) none/tests/sigstackgrowth (stdout) none/tests/sigstackgrowth (stderr) none/tests/stackgrowth (stdout) none/tests/stackgrowth (stderr) none/tests/x86/int (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 == 203 tests, 11 stderr failures, 4 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/map_unmap (stdout) none/tests/map_unmap (stderr) none/tests/mremap2 (stdout) none/tests/sigstackgrowth (stdout) none/tests/sigstackgrowth (stderr) none/tests/stackgrowth (stdout) none/tests/stackgrowth (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sat Oct 29 03:35:14 2005 --- new.short Sat Oct 29 03:40:17 2005 *************** *** 8,10 **** ! == 203 tests, 11 stderr failures, 4 stdout failures ================= memcheck/tests/leak-tree (stderr) --- 8,11 ---- ! == 203 tests, 12 stderr failures, 4 stdout failures ================= ! memcheck/tests/exitprog (stderr) memcheck/tests/leak-tree (stderr) |
|
From: Tom H. <th...@cy...> - 2005-10-29 02:27:50
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-10-29 03:15: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 == 202 tests, 16 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/mempool (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-10-29 02:23:12
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2005-10-29 03:00: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 == 177 tests, 8 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/tls (stdout) |
|
From: Tom H. <th...@cy...> - 2005-10-29 02:21:17
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2005-10-29 03:10:07 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 == 177 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2005-10-29 02:17:55
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2005-10-29 03:05: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 == 177 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/mremap2 (stdout) |