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
(9) |
|
3
(23) |
4
(24) |
5
(9) |
6
(7) |
7
(5) |
8
(2) |
9
(6) |
|
10
(5) |
11
(3) |
12
(11) |
13
(4) |
14
|
15
(3) |
16
(4) |
|
17
(3) |
18
(6) |
19
|
20
(1) |
21
(9) |
22
(8) |
23
(1) |
|
24
|
25
(2) |
26
(3) |
27
(16) |
28
(17) |
29
(22) |
30
(7) |
|
31
(4) |
|
|
|
|
|
|
|
From: <sv...@va...> - 2010-01-02 13:25:06
|
Author: sewardj
Date: 2010-01-02 13:24:58 +0000 (Sat, 02 Jan 2010)
New Revision: 10992
Log:
Various minor fixups to make ppc32/64-linux work again following
recent ARM-Linux merge.
Modified:
trunk/coregrind/m_debuginfo/priv_storage.h
trunk/coregrind/m_libcassert.c
trunk/coregrind/m_machine.c
trunk/coregrind/m_signals.c
trunk/coregrind/m_stacktrace.c
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
trunk/coregrind/pub_core_debuginfo.h
Modified: trunk/coregrind/m_debuginfo/priv_storage.h
===================================================================
--- trunk/coregrind/m_debuginfo/priv_storage.h 2010-01-02 10:43:23 UTC (rev 10991)
+++ trunk/coregrind/m_debuginfo/priv_storage.h 2010-01-02 13:24:58 UTC (rev 10992)
@@ -190,7 +190,20 @@
}
DiCfSI;
#elif defined(VGA_ppc32) || defined(VGA_ppc64)
-typedef void DiCfSI;
+/* Just have a struct with the common fields in, so that code that
+ processes the common fields doesn't have to be ifdef'd against
+ VGP_/VGA_ symbols. These are not used in any way on ppc32/64-linux
+ at the moment. */
+typedef
+ struct {
+ Addr base;
+ UInt len;
+ UChar cfa_how; /* a CFIC_ value */
+ UChar ra_how; /* a CFIR_ value */
+ Int cfa_off;
+ Int ra_off;
+ }
+ DiCfSI;
#else
# error "Unknown arch"
#endif
Modified: trunk/coregrind/m_libcassert.c
===================================================================
--- trunk/coregrind/m_libcassert.c 2010-01-02 10:43:23 UTC (rev 10991)
+++ trunk/coregrind/m_libcassert.c 2010-01-02 13:24:58 UTC (rev 10992)
@@ -91,9 +91,9 @@
: /* reads none */ \
: "r0" /* trashed */ \
); \
- srP->r_pc = (ULong)cia; \
- srP->r_sp = (ULong)r1; \
- srP->misc.PPC32.lr = lr; \
+ (srP)->r_pc = (ULong)cia; \
+ (srP)->r_sp = (ULong)r1; \
+ (srP)->misc.PPC32.r_lr = lr; \
}
#elif defined(VGP_ppc64_linux) || defined(VGP_ppc64_aix5)
# define GET_STARTREGS(srP) \
@@ -110,9 +110,9 @@
: /* reads none */ \
: "r0" /* trashed */ \
); \
- srP->r_pc = cia; \
- srP->r_sp = r1; \
- srP->misc.PPC64.lr = lr; \
+ (srP)->r_pc = cia; \
+ (srP)->r_sp = r1; \
+ (srP)->misc.PPC64.r_lr = lr; \
}
#elif defined(VGP_arm_linux)
# define GET_STARTREGS(srP) \
Modified: trunk/coregrind/m_machine.c
===================================================================
--- trunk/coregrind/m_machine.c 2010-01-02 10:43:23 UTC (rev 10991)
+++ trunk/coregrind/m_machine.c 2010-01-02 13:24:58 UTC (rev 10992)
@@ -97,12 +97,12 @@
= VG_(threads)[tid].arch.vex.guest_RBP;
# elif defined(VGA_ppc32)
regs->r_pc = (ULong)VG_(threads)[tid].arch.vex.guest_CIA;
- regs->r_sp = (ULong)VG_(threads)[tid].arch.vex.guest_R1;
+ regs->r_sp = (ULong)VG_(threads)[tid].arch.vex.guest_GPR1;
regs->misc.PPC32.r_lr
= VG_(threads)[tid].arch.vex.guest_LR;
# elif defined(VGA_ppc64)
regs->r_pc = VG_(threads)[tid].arch.vex.guest_CIA;
- regs->r_sp = VG_(threads)[tid].arch.vex.guest_R1;
+ regs->r_sp = VG_(threads)[tid].arch.vex.guest_GPR1;
regs->misc.PPC64.r_lr
= VG_(threads)[tid].arch.vex.guest_LR;
# elif defined(VGA_arm)
Modified: trunk/coregrind/m_signals.c
===================================================================
--- trunk/coregrind/m_signals.c 2010-01-02 10:43:23 UTC (rev 10991)
+++ trunk/coregrind/m_signals.c 2010-01-02 13:24:58 UTC (rev 10992)
@@ -263,6 +263,7 @@
meaningless, so the caller of VG_UCONTEXT_SYSCALL_SYSRES has to be
very careful to pay attention to the results only when it is sure
that the said constraint on the program counter is indeed valid. */
+
#if defined(VGP_x86_linux)
# define VG_UCONTEXT_INSTR_PTR(uc) ((uc)->uc_mcontext.eip)
# define VG_UCONTEXT_STACK_PTR(uc) ((uc)->uc_mcontext.esp)
@@ -332,21 +333,23 @@
uc->uc_regs->mc_gregs[PT_MSR], otherwise it clears it. That bit
will always be clear under 2.4.20. So you can use that bit to tell
whether uc->uc_regs->mc_vregs is valid. */
-# define VG_UCONTEXT_INSTR_PTR(uc) ((uc)->uc_regs->mc_gregs[VKI_PT_NIP])
-# define VG_UCONTEXT_STACK_PTR(uc) ((uc)->uc_regs->mc_gregs[VKI_PT_R1])
-# define VG_UCONTEXT_FRAME_PTR(uc) ((uc)->uc_regs->mc_gregs[VKI_PT_R1])
+# define VG_UCONTEXT_INSTR_PTR(uc) ((uc)->uc_regs->mc_gregs[VKI_PT_NIP])
+# define VG_UCONTEXT_STACK_PTR(uc) ((uc)->uc_regs->mc_gregs[VKI_PT_R1])
# define VG_UCONTEXT_SYSCALL_SYSRES(uc) \
/* Convert the values in uc_mcontext r3,cr into a SysRes. */ \
VG_(mk_SysRes_ppc32_linux)( \
(uc)->uc_regs->mc_gregs[VKI_PT_R3], \
(((uc)->uc_regs->mc_gregs[VKI_PT_CCR] >> 28) & 1) \
)
-# define VG_UCONTEXT_LINK_REG(uc) ((uc)->uc_regs->mc_gregs[VKI_PT_LNK])
+# define VG_UCONTEXT_TO_UnwindStartRegs(srP, uc) \
+ { (srP)->r_pc = (ULong)((uc)->uc_regs->mc_gregs[VKI_PT_NIP]); \
+ (srP)->r_sp = (ULong)((uc)->uc_regs->mc_gregs[VKI_PT_R1]); \
+ (srP)->misc.PPC32.r_lr = (uc)->uc_regs->mc_gregs[VKI_PT_LNK]; \
+ }
#elif defined(VGP_ppc64_linux)
-# define VG_UCONTEXT_INSTR_PTR(uc) ((uc)->uc_mcontext.gp_regs[VKI_PT_NIP])
-# define VG_UCONTEXT_STACK_PTR(uc) ((uc)->uc_mcontext.gp_regs[VKI_PT_R1])
-# define VG_UCONTEXT_FRAME_PTR(uc) ((uc)->uc_mcontext.gp_regs[VKI_PT_R1])
+# define VG_UCONTEXT_INSTR_PTR(uc) ((uc)->uc_mcontext.gp_regs[VKI_PT_NIP])
+# define VG_UCONTEXT_STACK_PTR(uc) ((uc)->uc_mcontext.gp_regs[VKI_PT_R1])
/* Dubious hack: if there is an error, only consider the lowest 8
bits of r3. memcheck/tests/post-syscall shows a case where an
interrupted syscall should have produced a ucontext with 0x4
@@ -361,7 +364,11 @@
if (err) r3 &= 0xFF;
return VG_(mk_SysRes_ppc64_linux)( r3, err );
}
-# define VG_UCONTEXT_LINK_REG(uc) ((uc)->uc_mcontext.gp_regs[VKI_PT_LNK])
+# define VG_UCONTEXT_TO_UnwindStartRegs(srP, uc) \
+ { (srP)->r_pc = (uc)->uc_mcontext.gp_regs[VKI_PT_NIP]; \
+ (srP)->r_sp = (uc)->uc_mcontext.gp_regs[VKI_PT_R1]; \
+ (srP)->misc.PPC64.r_lr = (uc)->uc_mcontext.gp_regs[VKI_PT_LNK]; \
+ }
#elif defined(VGP_arm_linux)
# define VG_UCONTEXT_INSTR_PTR(uc) ((uc)->uc_mcontext.arm_pc)
Modified: trunk/coregrind/m_stacktrace.c
===================================================================
--- trunk/coregrind/m_stacktrace.c 2010-01-02 10:43:23 UTC (rev 10991)
+++ trunk/coregrind/m_stacktrace.c 2010-01-02 13:24:58 UTC (rev 10992)
@@ -391,8 +391,8 @@
UInt VG_(get_StackTrace_wrk) ( ThreadId tid_if_known,
/*OUT*/Addr* ips, UInt max_n_ips,
/*OUT*/Addr* sps, /*OUT*/Addr* fps,
- Addr ip, Addr sp, Addr fp, Addr lr,
- Addr fp_min, Addr fp_max_orig )
+ UnwindStartRegs* startRegs,
+ Addr fp_max_orig )
{
Bool lr_is_first_RA = False;
# if defined(VG_PLAT_USES_PPCTOC)
@@ -408,6 +408,16 @@
vg_assert(sizeof(Addr) == sizeof(UWord));
vg_assert(sizeof(Addr) == sizeof(void*));
+ Addr ip = (Addr)startRegs->r_pc;
+ Addr sp = (Addr)startRegs->r_sp;
+ Addr fp = sp;
+# if defined(VGP_ppc32_linux) || defined(VGP_ppc32_aix5)
+ Addr lr = startRegs->misc.PPC32.r_lr;
+# elif defined(VGP_ppc64_linux) || defined(VGP_ppc64_aix5)
+ Addr lr = startRegs->misc.PPC64.r_lr;
+# endif
+ Addr fp_min = sp;
+
/* Snaffle IPs from the client's stack into ips[0 .. max_n_ips-1],
stopping when the trail goes cold, which we guess to be
when FP is not a reasonable stack location. */
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2010-01-02 10:43:23 UTC (rev 10991)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2010-01-02 13:24:58 UTC (rev 10992)
@@ -1503,7 +1503,7 @@
// arch/OS combination, eg. */* (generic), */Linux (Linux only), ?/?
// (unknown).
-const SyscallTableEntry ML_(syscall_table)[] = {
+static SyscallTableEntry syscall_table[] = {
//.. (restart_syscall) // 0
GENX_(__NR_exit, sys_exit), // 1
GENX_(__NR_fork, sys_fork), // 2
@@ -1882,9 +1882,24 @@
LINXY(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo) // 322
};
-const UInt ML_(syscall_table_size) =
- sizeof(ML_(syscall_table)) / sizeof(ML_(syscall_table)[0]);
+SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
+{
+ const UInt syscall_table_size
+ = sizeof(syscall_table) / sizeof(syscall_table[0]);
+ /* Is it in the contiguous initial section of the table? */
+ if (sysno < syscall_table_size) {
+ SyscallTableEntry* sys = &syscall_table[sysno];
+ if (sys->before == NULL)
+ return NULL; /* no entry */
+ else
+ return sys;
+ }
+
+ /* Can't find a wrapper */
+ return NULL;
+}
+
#endif // defined(VGP_ppc32_linux)
/*--------------------------------------------------------------------*/
Modified: trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c 2010-01-02 10:43:23 UTC (rev 10991)
+++ trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c 2010-01-02 13:24:58 UTC (rev 10992)
@@ -1151,7 +1151,7 @@
// arch/OS combination, eg. */* (generic), */Linux (Linux only), ?/?
// (unknown).
-const SyscallTableEntry ML_(syscall_table)[] = {
+static SyscallTableEntry syscall_table[] = {
// _____(__NR_restart_syscall, sys_restart_syscall), // 0
GENX_(__NR_exit, sys_exit), // 1
GENX_(__NR_fork, sys_fork), // 2
@@ -1523,9 +1523,24 @@
LINXY(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo) // 322
};
-const UInt ML_(syscall_table_size) =
- sizeof(ML_(syscall_table)) / sizeof(ML_(syscall_table)[0]);
+SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
+{
+ const UInt syscall_table_size
+ = sizeof(syscall_table) / sizeof(syscall_table[0]);
+ /* Is it in the contiguous initial section of the table? */
+ if (sysno < syscall_table_size) {
+ SyscallTableEntry* sys = &syscall_table[sysno];
+ if (sys->before == NULL)
+ return NULL; /* no entry */
+ else
+ return sys;
+ }
+
+ /* Can't find a wrapper */
+ return NULL;
+}
+
#endif // defined(VGP_ppc64_linux)
/*--------------------------------------------------------------------*/
Modified: trunk/coregrind/pub_core_debuginfo.h
===================================================================
--- trunk/coregrind/pub_core_debuginfo.h 2010-01-02 10:43:23 UTC (rev 10991)
+++ trunk/coregrind/pub_core_debuginfo.h 2010-01-02 13:24:58 UTC (rev 10992)
@@ -121,7 +121,7 @@
D3UnwindRegs;
#elif defined(VGA_ppc32) || defined(VGA_ppc64)
typedef
- void
+ UChar /* should be void, but gcc complains at use points */
D3UnwindRegs;
#else
# error "Unsupported arch"
|
|
From: <sv...@va...> - 2010-01-02 13:24:08
|
Author: sewardj
Date: 2010-01-02 13:23:54 +0000 (Sat, 02 Jan 2010)
New Revision: 1952
Log:
gen{Spill,Reload}_PPC: track recent change in genSpill/Reload
signature.
Modified:
trunk/priv/host_ppc_defs.c
trunk/priv/host_ppc_defs.h
Modified: trunk/priv/host_ppc_defs.c
===================================================================
--- trunk/priv/host_ppc_defs.c 2010-01-01 19:19:08 UTC (rev 1951)
+++ trunk/priv/host_ppc_defs.c 2010-01-02 13:23:54 UTC (rev 1952)
@@ -2148,51 +2148,63 @@
/* Generate ppc spill/reload instructions under the direction of the
register allocator. Note it's critical these don't write the
condition codes. */
-PPCInstr* genSpill_PPC ( HReg rreg, UShort offsetB, Bool mode64 )
+
+void genSpill_PPC ( /*OUT*/HInstr** i1, /*OUT*/HInstr** i2,
+ HReg rreg, Int offsetB, Bool mode64 )
{
PPCAMode* am;
vassert(!hregIsVirtual(rreg));
+ *i1 = *i2 = NULL;
am = PPCAMode_IR( offsetB, GuestStatePtr(mode64) );
-
switch (hregClass(rreg)) {
- case HRcInt64:
- vassert(mode64);
- return PPCInstr_Store( 8, am, rreg, mode64 );
- case HRcInt32:
- vassert(!mode64);
- return PPCInstr_Store( 4, am, rreg, mode64 );
- case HRcFlt64:
- return PPCInstr_FpLdSt ( False/*store*/, 8, rreg, am );
- case HRcVec128:
- // XXX: GPR30 used as spill register to kludge AltiVec AMode_IR
- return PPCInstr_AvLdSt ( False/*store*/, 16, rreg, am );
- default:
- ppHRegClass(hregClass(rreg));
- vpanic("genSpill_PPC: unimplemented regclass");
+ case HRcInt64:
+ vassert(mode64);
+ *i1 = PPCInstr_Store( 8, am, rreg, mode64 );
+ return;
+ case HRcInt32:
+ vassert(!mode64);
+ *i1 = PPCInstr_Store( 4, am, rreg, mode64 );
+ return;
+ case HRcFlt64:
+ *i1 = PPCInstr_FpLdSt ( False/*store*/, 8, rreg, am );
+ return;
+ case HRcVec128:
+ // XXX: GPR30 used as spill register to kludge AltiVec
+ // AMode_IR
+ *i1 = PPCInstr_AvLdSt ( False/*store*/, 16, rreg, am );
+ return;
+ default:
+ ppHRegClass(hregClass(rreg));
+ vpanic("genSpill_PPC: unimplemented regclass");
}
}
-PPCInstr* genReload_PPC ( HReg rreg, UShort offsetB, Bool mode64 )
+void genReload_PPC ( /*OUT*/HInstr** i1, /*OUT*/HInstr** i2,
+ HReg rreg, Int offsetB, Bool mode64 )
{
PPCAMode* am;
vassert(!hregIsVirtual(rreg));
+ *i1 = *i2 = NULL;
am = PPCAMode_IR( offsetB, GuestStatePtr(mode64) );
-
switch (hregClass(rreg)) {
- case HRcInt64:
- vassert(mode64);
- return PPCInstr_Load( 8, rreg, am, mode64 );
- case HRcInt32:
- vassert(!mode64);
- return PPCInstr_Load( 4, rreg, am, mode64 );
- case HRcFlt64:
- return PPCInstr_FpLdSt ( True/*load*/, 8, rreg, am );
- case HRcVec128:
- // XXX: GPR30 used as spill register to kludge AltiVec AMode_IR
- return PPCInstr_AvLdSt ( True/*load*/, 16, rreg, am );
- default:
- ppHRegClass(hregClass(rreg));
- vpanic("genReload_PPC: unimplemented regclass");
+ case HRcInt64:
+ vassert(mode64);
+ *i1 = PPCInstr_Load( 8, rreg, am, mode64 );
+ return;
+ case HRcInt32:
+ vassert(!mode64);
+ *i1 = PPCInstr_Load( 4, rreg, am, mode64 );
+ return;
+ case HRcFlt64:
+ *i1 = PPCInstr_FpLdSt ( True/*load*/, 8, rreg, am );
+ return;
+ case HRcVec128:
+ // XXX: GPR30 used as spill register to kludge AltiVec AMode_IR
+ *i1 = PPCInstr_AvLdSt ( True/*load*/, 16, rreg, am );
+ return;
+ default:
+ ppHRegClass(hregClass(rreg));
+ vpanic("genReload_PPC: unimplemented regclass");
}
}
Modified: trunk/priv/host_ppc_defs.h
===================================================================
--- trunk/priv/host_ppc_defs.h 2010-01-01 19:19:08 UTC (rev 1951)
+++ trunk/priv/host_ppc_defs.h 2010-01-02 13:23:54 UTC (rev 1952)
@@ -854,8 +854,12 @@
extern Bool isMove_PPCInstr ( PPCInstr*, HReg*, HReg* );
extern Int emit_PPCInstr ( UChar* buf, Int nbuf, PPCInstr*,
Bool mode64, void* dispatch );
-extern PPCInstr* genSpill_PPC ( HReg rreg, UShort offsetB, Bool mode64 );
-extern PPCInstr* genReload_PPC ( HReg rreg, UShort offsetB, Bool mode64 );
+
+extern void genSpill_PPC ( /*OUT*/HInstr** i1, /*OUT*/HInstr** i2,
+ HReg rreg, Int offsetB, Bool mode64 );
+extern void genReload_PPC ( /*OUT*/HInstr** i1, /*OUT*/HInstr** i2,
+ HReg rreg, Int offsetB, Bool mode64 );
+
extern void getAllocableRegs_PPC ( Int*, HReg**, Bool mode64 );
extern HInstrArray* iselSB_PPC ( IRSB*, VexArch,
VexArchInfo*,
|
|
From: <sv...@va...> - 2010-01-02 10:43:36
|
Author: sewardj
Date: 2010-01-02 10:43:23 +0000 (Sat, 02 Jan 2010)
New Revision: 10991
Log:
Make regtests build on arm-linux -- all changes are to do with
assembly code for atomic memory modifications.
Modified:
trunk/helgrind/tests/Makefile.am
trunk/helgrind/tests/annotate_hbefore.c
trunk/helgrind/tests/tc07_hbl1.c
trunk/helgrind/tests/tc08_hbl2.c
trunk/helgrind/tests/tc11_XCHG.c
Modified: trunk/helgrind/tests/Makefile.am
===================================================================
--- trunk/helgrind/tests/Makefile.am 2010-01-02 10:41:46 UTC (rev 10990)
+++ trunk/helgrind/tests/Makefile.am 2010-01-02 10:43:23 UTC (rev 10991)
@@ -129,6 +129,16 @@
tc22_exit_w_lock
endif
+if VGCONF_PLATFORMS_INCLUDE_ARM_LINUX
+annotate_hbefore_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
+tc07_hbl1_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
+tc08_hbl2_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
+else
+annotate_hbefore_CFLAGS = $(AM_CFLAGS)
+tc07_hbl1_CFLAGS = $(AM_CFLAGS)
+tc08_hbl2_CFLAGS = $(AM_CFLAGS)
+endif
+
if HAVE_PTHREAD_BARRIER
check_PROGRAMS += bar_bad bar_trivial
endif
Modified: trunk/helgrind/tests/annotate_hbefore.c
===================================================================
--- trunk/helgrind/tests/annotate_hbefore.c 2010-01-02 10:41:46 UTC (rev 10990)
+++ trunk/helgrind/tests/annotate_hbefore.c 2010-01-02 10:43:23 UTC (rev 10991)
@@ -132,6 +132,39 @@
return block[3] & 1;
}
+#elif defined(VGA_arm)
+
+// arm
+/* return 1 if success, 0 if failure */
+UWord do_acasW ( UWord* addr, UWord expected, UWord nyu )
+{
+ UWord old, success;
+ UWord block[2] = { (UWord)addr, nyu };
+
+ /* Fetch the old value, and set the reservation */
+ __asm__ __volatile__ (
+ "ldrex %0, [%1]" "\n"
+ : /*out*/ "=r"(old)
+ : /*in*/ "r"(addr)
+ );
+
+ /* If the old value isn't as expected, we've had it */
+ if (old != expected) return 0;
+
+ /* otherwise try to stuff the new value in */
+ __asm__ __volatile__(
+ "ldr r4, [%1, #0]" "\n\t"
+ "ldr r5, [%1, #4]" "\n\t"
+ "strex r6, r5, [r4, #0]" "\n\t"
+ "eor %0, r6, #1" "\n\t"
+ : /*out*/ "=r"(success)
+ : /*in*/ "r"(&block[0])
+ : /*trash*/ "r4","r5","r6","memory"
+ );
+ assert(success == 0 || success == 1);
+ return success;
+}
+
#endif
void atomic_incW ( UWord* w )
Modified: trunk/helgrind/tests/tc07_hbl1.c
===================================================================
--- trunk/helgrind/tests/tc07_hbl1.c 2010-01-02 10:41:46 UTC (rev 10990)
+++ trunk/helgrind/tests/tc07_hbl1.c 2010-01-02 10:43:23 UTC (rev 10991)
@@ -6,25 +6,34 @@
/* Simple test program, no race. Parent and child both modify x and
use the hardware bus lock. */
+#undef PLAT_ppc64_aix5
+#undef PLAT_ppc32_aix5
+#undef PLAT_x86_darwin
+#undef PLAT_amd64_darwin
#undef PLAT_x86_linux
#undef PLAT_amd64_linux
#undef PLAT_ppc32_linux
#undef PLAT_ppc64_linux
-#undef PLAT_ppc32_aix5
-#undef PLAT_ppc64_aix5
+#undef PLAT_arm_linux
-#if !defined(_AIX) && defined(__i386__)
+#if defined(_AIX) && defined(__64BIT__)
+# define PLAT_ppc64_aix5 1
+#elif defined(_AIX) && !defined(__64BIT__)
+# define PLAT_ppc32_aix5 1
+#elif defined(__APPLE__) && defined(__i386__)
+# define PLAT_x86_darwin 1
+#elif defined(__APPLE__) && defined(__x86_64__)
+# define PLAT_amd64_darwin 1
+#elif defined(__linux__) && defined(__i386__)
# define PLAT_x86_linux 1
-#elif !defined(_AIX) && defined(__x86_64__)
+#elif defined(__linux__) && defined(__x86_64__)
# define PLAT_amd64_linux 1
-#elif !defined(_AIX) && defined(__powerpc__) && !defined(__powerpc64__)
+#elif defined(__linux__) && defined(__powerpc__) && !defined(__powerpc64__)
# define PLAT_ppc32_linux 1
-#elif !defined(_AIX) && defined(__powerpc__) && defined(__powerpc64__)
+#elif defined(__linux__) && defined(__powerpc__) && defined(__powerpc64__)
# define PLAT_ppc64_linux 1
-#elif defined(_AIX) && defined(__64BIT__)
-# define PLAT_ppc64_aix5 1
-#elif defined(_AIX) && !defined(__64BIT__)
-# define PLAT_ppc32_aix5 1
+#elif defined(__linux__) && defined(__arm__)
+# define PLAT_arm_linux 1
#endif
#if defined(PLAT_amd64_linux) || defined(PLAT_x86_linux)
@@ -43,6 +52,18 @@
: /*out*/ : /*in*/ "b"(&(_lval)) \
: /*trash*/ "r15", "cr0", "memory" \
)
+#elif defined(PLAT_arm_linux)
+# define INC(_lval,_lqual) \
+ __asm__ __volatile__( \
+ "L1xyzzy1" _lqual ":\n" \
+ " ldrex r8, [%0, #0]\n" \
+ " add r8, r8, #1\n" \
+ " strex r9, r8, [%0, #0]\n" \
+ " cmp r9, #0\n" \
+ " bne L1xyzzy1" _lqual \
+ : /*out*/ : /*in*/ "r"(&(_lval)) \
+ : /*trash*/ "r8", "r9", "cc", "memory" \
+ );
#else
# error "Fix Me for this platform"
#endif
Modified: trunk/helgrind/tests/tc08_hbl2.c
===================================================================
--- trunk/helgrind/tests/tc08_hbl2.c 2010-01-02 10:41:46 UTC (rev 10990)
+++ trunk/helgrind/tests/tc08_hbl2.c 2010-01-02 10:43:23 UTC (rev 10991)
@@ -22,28 +22,37 @@
child joins back to parent. Parent (writer) uses hardware bus lock;
child is only reading and so does not need to use a bus lock. */
-
+#undef PLAT_ppc64_aix5
+#undef PLAT_ppc32_aix5
+#undef PLAT_x86_darwin
+#undef PLAT_amd64_darwin
#undef PLAT_x86_linux
#undef PLAT_amd64_linux
#undef PLAT_ppc32_linux
#undef PLAT_ppc64_linux
-#undef PLAT_ppc32_aix5
-#undef PLAT_ppc64_aix5
+#undef PLAT_arm_linux
-#if !defined(_AIX) && defined(__i386__)
+#if defined(_AIX) && defined(__64BIT__)
+# define PLAT_ppc64_aix5 1
+#elif defined(_AIX) && !defined(__64BIT__)
+# define PLAT_ppc32_aix5 1
+#elif defined(__APPLE__) && defined(__i386__)
+# define PLAT_x86_darwin 1
+#elif defined(__APPLE__) && defined(__x86_64__)
+# define PLAT_amd64_darwin 1
+#elif defined(__linux__) && defined(__i386__)
# define PLAT_x86_linux 1
-#elif !defined(_AIX) && defined(__x86_64__)
+#elif defined(__linux__) && defined(__x86_64__)
# define PLAT_amd64_linux 1
-#elif !defined(_AIX) && defined(__powerpc__) && !defined(__powerpc64__)
+#elif defined(__linux__) && defined(__powerpc__) && !defined(__powerpc64__)
# define PLAT_ppc32_linux 1
-#elif !defined(_AIX) && defined(__powerpc__) && defined(__powerpc64__)
+#elif defined(__linux__) && defined(__powerpc__) && defined(__powerpc64__)
# define PLAT_ppc64_linux 1
-#elif defined(_AIX) && defined(__64BIT__)
-# define PLAT_ppc64_aix5 1
-#elif defined(_AIX) && !defined(__64BIT__)
-# define PLAT_ppc32_aix5 1
+#elif defined(__linux__) && defined(__arm__)
+# define PLAT_arm_linux 1
#endif
+
#if defined(PLAT_amd64_linux) || defined(PLAT_x86_linux)
# define INC(_lval,_lqual) \
__asm__ __volatile__ ( \
@@ -60,6 +69,18 @@
: /*out*/ : /*in*/ "b"(&(_lval)) \
: /*trash*/ "r15", "cr0", "memory" \
)
+#elif defined(PLAT_arm_linux)
+# define INC(_lval,_lqual) \
+ __asm__ __volatile__( \
+ "L1xyzzy1" _lqual ":\n" \
+ " ldrex r8, [%0, #0]\n" \
+ " add r8, r8, #1\n" \
+ " strex r9, r8, [%0, #0]\n" \
+ " cmp r9, #0\n" \
+ " bne L1xyzzy1" _lqual \
+ : /*out*/ : /*in*/ "r"(&(_lval)) \
+ : /*trash*/ "r8", "r9", "cc", "memory" \
+ );
#else
# error "Fix Me for this platform"
#endif
Modified: trunk/helgrind/tests/tc11_XCHG.c
===================================================================
--- trunk/helgrind/tests/tc11_XCHG.c 2010-01-02 10:41:46 UTC (rev 10990)
+++ trunk/helgrind/tests/tc11_XCHG.c 2010-01-02 10:43:23 UTC (rev 10991)
@@ -9,25 +9,34 @@
use the hardware bus lock (implicitly, since XCHG r,m on x86/amd64
does not require an explicit LOCK prefix.). */
+#undef PLAT_ppc64_aix5
+#undef PLAT_ppc32_aix5
+#undef PLAT_x86_darwin
+#undef PLAT_amd64_darwin
#undef PLAT_x86_linux
#undef PLAT_amd64_linux
#undef PLAT_ppc32_linux
#undef PLAT_ppc64_linux
-#undef PLAT_ppc32_aix5
-#undef PLAT_ppc64_aix5
+#undef PLAT_arm_linux
-#if !defined(_AIX) && defined(__i386__)
+#if defined(_AIX) && defined(__64BIT__)
+# define PLAT_ppc64_aix5 1
+#elif defined(_AIX) && !defined(__64BIT__)
+# define PLAT_ppc32_aix5 1
+#elif defined(__APPLE__) && defined(__i386__)
+# define PLAT_x86_darwin 1
+#elif defined(__APPLE__) && defined(__x86_64__)
+# define PLAT_amd64_darwin 1
+#elif defined(__linux__) && defined(__i386__)
# define PLAT_x86_linux 1
-#elif !defined(_AIX) && defined(__x86_64__)
+#elif defined(__linux__) && defined(__x86_64__)
# define PLAT_amd64_linux 1
-#elif !defined(_AIX) && defined(__powerpc__) && !defined(__powerpc64__)
+#elif defined(__linux__) && defined(__powerpc__) && !defined(__powerpc64__)
# define PLAT_ppc32_linux 1
-#elif !defined(_AIX) && defined(__powerpc__) && defined(__powerpc64__)
+#elif defined(__linux__) && defined(__powerpc__) && defined(__powerpc64__)
# define PLAT_ppc64_linux 1
-#elif defined(_AIX) && defined(__64BIT__)
-# define PLAT_ppc64_aix5 1
-#elif defined(_AIX) && !defined(__64BIT__)
-# define PLAT_ppc32_aix5 1
+#elif defined(__linux__) && defined(__arm__)
+# define PLAT_arm_linux 1
#endif
@@ -48,7 +57,8 @@
)
#elif defined(PLAT_ppc32_linux) || defined(PLAT_ppc64_linux) \
- || defined(PLAT_ppc32_aix5) || defined(PLAT_ppc64_aix5)
+ || defined(PLAT_ppc32_aix5) || defined(PLAT_ppc64_aix5) \
+ || defined(PLAT_arm_linux)
# if defined(HAVE_BUILTIN_ATOMIC)
# define XCHG_M_R(_addr,_lval) \
do { \
|
|
From: <sv...@va...> - 2010-01-02 10:41:53
|
Author: sewardj
Date: 2010-01-02 10:41:46 +0000 (Sat, 02 Jan 2010)
New Revision: 10990
Log:
Redo r10971 ("Made sure that C++ compilers do not complain about the
_VKI_IOC_TYPECHECK() macro") in a way which is easier to understand.
Also, add it for arm-linux.
Modified:
trunk/include/vki/vki-arm-linux.h
trunk/include/vki/vki-ppc32-linux.h
trunk/include/vki/vki-ppc64-linux.h
trunk/include/vki/vki-x86-linux.h
Modified: trunk/include/vki/vki-arm-linux.h
===================================================================
--- trunk/include/vki/vki-arm-linux.h 2010-01-02 10:37:58 UTC (rev 10989)
+++ trunk/include/vki/vki-arm-linux.h 2010-01-02 10:41:46 UTC (rev 10990)
@@ -475,11 +475,11 @@
((size) << _VKI_IOC_SIZESHIFT))
/* provoke compile error for invalid uses of size argument */
-extern unsigned int __vki_invalid_size_argument_for_IOC;
#define _VKI_IOC_TYPECHECK(t) \
((sizeof(t) == sizeof(t[1]) && \
- sizeof(t) < (1 << _VKI_IOC_SIZEBITS)) ? \
- sizeof(t) : __vki_invalid_size_argument_for_IOC)
+ sizeof(t) < (1 << _VKI_IOC_SIZEBITS)) \
+ ? sizeof(t) \
+ : /*cause gcc to complain about division by zero*/(1/0) )
/* used to create numbers */
#define _VKI_IO(type,nr) _VKI_IOC(_VKI_IOC_NONE,(type),(nr),0)
Modified: trunk/include/vki/vki-ppc32-linux.h
===================================================================
--- trunk/include/vki/vki-ppc32-linux.h 2010-01-02 10:37:58 UTC (rev 10989)
+++ trunk/include/vki/vki-ppc32-linux.h 2010-01-02 10:41:46 UTC (rev 10990)
@@ -517,8 +517,10 @@
/* provoke compile error for invalid uses of size argument */
#define _VKI_IOC_TYPECHECK(t) \
- (sizeof(t) / (sizeof(t) == sizeof(t[1]) && \
- sizeof(t) < (1 << _VKI_IOC_SIZEBITS)))
+ ((sizeof(t) == sizeof(t[1]) && \
+ sizeof(t) < (1 << _VKI_IOC_SIZEBITS)) \
+ ? sizeof(t) \
+ : /*cause gcc to complain about division by zero*/(1/0) )
/* used to create numbers */
#define _VKI_IO(type,nr) _VKI_IOC(_VKI_IOC_NONE,(type),(nr),0)
Modified: trunk/include/vki/vki-ppc64-linux.h
===================================================================
--- trunk/include/vki/vki-ppc64-linux.h 2010-01-02 10:37:58 UTC (rev 10989)
+++ trunk/include/vki/vki-ppc64-linux.h 2010-01-02 10:41:46 UTC (rev 10990)
@@ -560,8 +560,10 @@
/* provoke compile error for invalid uses of size argument */
#define _VKI_IOC_TYPECHECK(t) \
- (sizeof(t) / (sizeof(t) == sizeof(t[1]) && \
- sizeof(t) < (1 << _VKI_IOC_SIZEBITS)))
+ ((sizeof(t) == sizeof(t[1]) && \
+ sizeof(t) < (1 << _VKI_IOC_SIZEBITS)) \
+ ? sizeof(t) \
+ : /*cause gcc to complain about division by zero*/(1/0) )
/* used to create numbers */
#define _VKI_IO(type,nr) _VKI_IOC(_VKI_IOC_NONE,(type),(nr),0)
Modified: trunk/include/vki/vki-x86-linux.h
===================================================================
--- trunk/include/vki/vki-x86-linux.h 2010-01-02 10:37:58 UTC (rev 10989)
+++ trunk/include/vki/vki-x86-linux.h 2010-01-02 10:41:46 UTC (rev 10990)
@@ -481,8 +481,10 @@
/* provoke compile error for invalid uses of size argument */
#define _VKI_IOC_TYPECHECK(t) \
- (sizeof(t) / (sizeof(t) == sizeof(t[1]) && \
- sizeof(t) < (1 << _VKI_IOC_SIZEBITS)))
+ ((sizeof(t) == sizeof(t[1]) && \
+ sizeof(t) < (1 << _VKI_IOC_SIZEBITS)) \
+ ? sizeof(t) \
+ : /*cause gcc to complain about division by zero*/(1/0) )
/* used to create numbers */
#define _VKI_IO(type,nr) _VKI_IOC(_VKI_IOC_NONE,(type),(nr),0)
|
|
From: <sv...@va...> - 2010-01-02 10:38:07
|
Author: sewardj
Date: 2010-01-02 10:37:58 +0000 (Sat, 02 Jan 2010)
New Revision: 10989
Log:
Tidy up determination of the PLAT_ macros a bit.
Modified:
trunk/include/valgrind.h
Modified: trunk/include/valgrind.h
===================================================================
--- trunk/include/valgrind.h 2010-01-01 20:56:13 UTC (rev 10988)
+++ trunk/include/valgrind.h 2010-01-02 10:37:58 UTC (rev 10989)
@@ -89,13 +89,15 @@
Misc note: how to find out what's predefined in gcc by default:
gcc -Wp,-dM somefile.c
*/
+#undef PLAT_ppc64_aix5
+#undef PLAT_ppc32_aix5
+#undef PLAT_x86_darwin
+#undef PLAT_amd64_darwin
#undef PLAT_x86_linux
#undef PLAT_amd64_linux
#undef PLAT_ppc32_linux
#undef PLAT_ppc64_linux
#undef PLAT_arm_linux
-#undef PLAT_ppc32_aix5
-#undef PLAT_ppc64_aix5
#if defined(_AIX) && defined(__64BIT__)
# define PLAT_ppc64_aix5 1
|
|
From: Bart V. A. <bar...@gm...> - 2010-01-02 08:17:02
|
Nightly build on cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) Started at 2010-01-02 02:27:28 EST Ended at 2010-01-02 03:16:44 EST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Last 20 lines of verbose log follow echo make[3]: Entering directory `/net/home/bart/software/valgrind/nightly/valgrind-new/VEX' make[3]: Nothing to be done for `check-am'. make[3]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/VEX' make[2]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/VEX' Making check in coregrind make[2]: Entering directory `/net/home/bart/software/valgrind/nightly/valgrind-new/coregrind' make check-am make[3]: Entering directory `/net/home/bart/software/valgrind/nightly/valgrind-new/coregrind' gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -I../coregrind -DVG_LIBDIR="\"/home/bart/software/valgrind/nightly/valgrind-new/Inst/lib/valgrind"\" -DVG_PLATFORM="\"ppc64-linux\"" -m64 -O2 -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-format-zero-length -fno-strict-aliasing -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT libcoregrind_ppc64_linux_a-m_libcassert.o -MD -MP -MF .deps/libcoregrind_ppc64_linux_a-m_libcassert.Tpo -c -o libcoregrind_ppc64_linux_a-m_libcassert.o `test -f 'm_libcassert.c' || echo './'`m_libcassert.c m_libcassert.c: In function âreport_and_quitâ: m_libcassert.c:191: error: invalid type argument of â->â (have âUnwindStartRegsâ) m_libcassert.c:191: error: invalid type argument of â->â (have âUnwindStartRegsâ) m_libcassert.c:191: error: invalid type argument of â->â (have âUnwindStartRegsâ) make[3]: *** [libcoregrind_ppc64_linux_a-m_libcassert.o] Error 1 make[3]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/coregrind' make[2]: *** [check] Error 2 make[2]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/coregrind' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new' make: *** [check] Error 2 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 449 tests, 181 stderr failures, 55 stdout failures, 0 post failures == memcheck/tests/addressable (stdout) memcheck/tests/addressable (stderr) memcheck/tests/atomic_incs (stdout) memcheck/tests/atomic_incs (stderr) memcheck/tests/badaddrvalue (stdout) memcheck/tests/badaddrvalue (stderr) memcheck/tests/badfree-2trace (stderr) memcheck/tests/badfree (stderr) memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/badloop (stderr) memcheck/tests/badpoll (stderr) memcheck/tests/badrw (stderr) memcheck/tests/brk2 (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/calloc-overflow (stderr) memcheck/tests/clientperm (stdout) memcheck/tests/clientperm (stderr) memcheck/tests/custom-overlap (stderr) memcheck/tests/custom_alloc (stderr) memcheck/tests/deep_templates (stdout) memcheck/tests/describe-block (stderr) memcheck/tests/doublefree (stderr) memcheck/tests/erringfds (stdout) memcheck/tests/erringfds (stderr) memcheck/tests/error_counts (stderr) memcheck/tests/errs1 (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/exitprog (stderr) memcheck/tests/file_locking (stderr) memcheck/tests/fprw (stderr) memcheck/tests/fwrite (stderr) memcheck/tests/inits (stderr) memcheck/tests/inline (stdout) memcheck/tests/inline (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (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-tree (stderr) memcheck/tests/linux/brk (stderr) memcheck/tests/linux/capget (stderr) memcheck/tests/linux/lsframe1 (stderr) memcheck/tests/linux/lsframe2 (stderr) memcheck/tests/linux/sigqueue (stderr) memcheck/tests/linux/stack_changes (stdout) memcheck/tests/linux/stack_changes (stderr) memcheck/tests/linux/stack_switch (stderr) memcheck/tests/linux/timerfd-syscall (stdout) memcheck/tests/linux/timerfd-syscall (stderr) memcheck/tests/linux/with-space (stdout) memcheck/tests/linux/with-space (stderr) memcheck/tests/linux-syscalls-2007 (stderr) memcheck/tests/linux-syslog-syscall (stderr) memcheck/tests/long-supps (stderr) memcheck/tests/long_namespace_xml (stdout) memcheck/tests/long_namespace_xml (stderr) memcheck/tests/mallinfo (stderr) memcheck/tests/malloc1 (stderr) memcheck/tests/malloc2 (stderr) memcheck/tests/malloc3 (stdout) memcheck/tests/malloc3 (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/malloc_usable (stderr) memcheck/tests/manuel1 (stdout) memcheck/tests/manuel1 (stderr) memcheck/tests/manuel2 (stdout) memcheck/tests/manuel2 (stderr) memcheck/tests/manuel3 (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/memalign2 (stderr) memcheck/tests/memalign_test (stderr) memcheck/tests/memcmptest (stdout) memcheck/tests/memcmptest (stderr) memcheck/tests/mempool (stderr) memcheck/tests/metadata (stdout) memcheck/tests/metadata (stderr) memcheck/tests/mismatches (stderr) memcheck/tests/mmaptest (stderr) memcheck/tests/nanoleak2 (stderr) memcheck/tests/nanoleak_supp (stderr) memcheck/tests/new_nothrow (stderr) memcheck/tests/new_override (stdout) memcheck/tests/new_override (stderr) memcheck/tests/noisy_child (stderr) memcheck/tests/null_socket (stderr) memcheck/tests/origin1-yes (stderr) memcheck/tests/origin2-not-quite (stderr) memcheck/tests/origin3-no (stderr) memcheck/tests/origin4-many (stderr) memcheck/tests/origin5-bz2 (stdout) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/origin6-fp (stderr) memcheck/tests/overlap (stdout) memcheck/tests/overlap (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stdout) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pdb-realloc (stderr) memcheck/tests/pdb-realloc2 (stdout) memcheck/tests/pdb-realloc2 (stderr) memcheck/tests/pipe (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/post-syscall (stderr) memcheck/tests/realloc1 (stderr) memcheck/tests/realloc2 (stderr) memcheck/tests/realloc3 (stderr) memcheck/tests/sh-mem-random (stdout) memcheck/tests/sh-mem-random (stderr) memcheck/tests/sh-mem (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/signal2 (stdout) memcheck/tests/signal2 (stderr) memcheck/tests/sigprocmask (stderr) memcheck/tests/str_tester (stderr) memcheck/tests/strchr (stderr) memcheck/tests/supp1 (stderr) memcheck/tests/supp2 (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/suppfree (stderr) memcheck/tests/trivialleak (stderr) memcheck/tests/unit_libcbase (stderr) memcheck/tests/unit_oset (stdout) memcheck/tests/unit_oset (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stdout) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stdout) memcheck/tests/varinfo6 (stderr) memcheck/tests/vcpu_bz2 (stdout) memcheck/tests/vcpu_bz2 (stderr) memcheck/tests/vcpu_fbench (stdout) memcheck/tests/vcpu_fbench (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/vcpu_fnfns (stderr) memcheck/tests/wrap1 (stdout) memcheck/tests/wrap1 (stderr) memcheck/tests/wrap2 (stdout) memcheck/tests/wrap2 (stderr) memcheck/tests/wrap3 (stdout) memcheck/tests/wrap3 (stderr) memcheck/tests/wrap4 (stdout) memcheck/tests/wrap4 (stderr) memcheck/tests/wrap5 (stdout) memcheck/tests/wrap5 (stderr) memcheck/tests/wrap6 (stdout) memcheck/tests/wrap6 (stderr) memcheck/tests/wrap7 (stdout) memcheck/tests/wrap7 (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) memcheck/tests/writev (stderr) memcheck/tests/xml1 (stdout) memcheck/tests/xml1 (stderr) cachegrind/tests/chdir (stderr) cachegrind/tests/clreq (stderr) cachegrind/tests/dlclose (stdout) cachegrind/tests/dlclose (stderr) cachegrind/tests/notpower2 (stderr) cachegrind/tests/wrap5 (stdout) cachegrind/tests/wrap5 (stderr) callgrind/tests/notpower2-hwpref (stderr) callgrind/tests/notpower2-use (stderr) callgrind/tests/notpower2-wb (stderr) callgrind/tests/notpower2 (stderr) callgrind/tests/simwork1 (stdout) callgrind/tests/simwork1 (stderr) callgrind/tests/simwork2 (stdout) callgrind/tests/simwork2 (stderr) callgrind/tests/simwork3 (stdout) callgrind/tests/simwork3 (stderr) lackey/tests/true (stderr) none/tests/empty-exe (stderr) none/tests/linux/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/round (stdout) none/tests/ppc32/test_gx (stdout) none/tests/ppc32/testVMX (stdout) none/tests/ppc32/testVMX (stderr) none/tests/ppc64/jm-fp (stdout) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/round (stdout) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) none/tests/shell_zerolength (stderr) helgrind/tests/bar_bad (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) drd/tests/bar_bad (stderr) drd/tests/circular_buffer (stderr) drd/tests/pth_cancel_locked (stderr) drd/tests/pth_cleanup_handler (stderr) drd/tests/tc23_bogus_condwait (stderr) drd/tests/unit_bitmap (stderr) drd/tests/unit_vc (stderr) exp-ptrcheck/tests/bad_percentify (stdout) exp-ptrcheck/tests/bad_percentify (stderr) exp-ptrcheck/tests/base (stderr) exp-ptrcheck/tests/ccc (stderr) exp-ptrcheck/tests/fp (stderr) exp-ptrcheck/tests/globalerr (stderr) exp-ptrcheck/tests/hackedbz2 (stdout) exp-ptrcheck/tests/hackedbz2 (stderr) exp-ptrcheck/tests/hp_bounds (stderr) exp-ptrcheck/tests/hp_dangle (stderr) exp-ptrcheck/tests/hsg (stdout) exp-ptrcheck/tests/hsg (stderr) exp-ptrcheck/tests/justify (stderr) exp-ptrcheck/tests/partial_bad (stderr) exp-ptrcheck/tests/partial_good (stderr) exp-ptrcheck/tests/preen_invars (stdout) exp-ptrcheck/tests/preen_invars (stderr) exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/pth_specific (stderr) exp-ptrcheck/tests/realloc (stderr) exp-ptrcheck/tests/stackerr (stderr) exp-ptrcheck/tests/strcpy (stderr) exp-ptrcheck/tests/supp (stderr) exp-ptrcheck/tests/tricky (stderr) exp-ptrcheck/tests/unaligned (stderr) exp-ptrcheck/tests/zero (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sat Jan 2 03:05:36 2010 --- new.short Sat Jan 2 03:16:44 2010 *************** *** 6,246 **** ! Regression test results follow ! ! == 449 tests, 181 stderr failures, 55 stdout failures, 0 post failures == ! memcheck/tests/addressable (stdout) ! memcheck/tests/addressable (stderr) ! memcheck/tests/atomic_incs (stdout) ! memcheck/tests/atomic_incs (stderr) ! memcheck/tests/badaddrvalue (stdout) ! memcheck/tests/badaddrvalue (stderr) ! memcheck/tests/badfree-2trace (stderr) ! memcheck/tests/badfree (stderr) ! memcheck/tests/badjump (stderr) ! memcheck/tests/badjump2 (stderr) ! memcheck/tests/badloop (stderr) ! memcheck/tests/badpoll (stderr) ! memcheck/tests/badrw (stderr) ! memcheck/tests/brk2 (stderr) ! memcheck/tests/buflen_check (stderr) ! memcheck/tests/calloc-overflow (stderr) ! memcheck/tests/clientperm (stdout) ! memcheck/tests/clientperm (stderr) ! memcheck/tests/custom-overlap (stderr) ! memcheck/tests/custom_alloc (stderr) ! memcheck/tests/deep_templates (stdout) ! memcheck/tests/describe-block (stderr) ! memcheck/tests/doublefree (stderr) ! memcheck/tests/erringfds (stdout) ! memcheck/tests/erringfds (stderr) ! memcheck/tests/error_counts (stderr) ! memcheck/tests/errs1 (stderr) ! memcheck/tests/execve (stderr) ! memcheck/tests/execve2 (stderr) ! memcheck/tests/exitprog (stderr) ! memcheck/tests/file_locking (stderr) ! memcheck/tests/fprw (stderr) ! memcheck/tests/fwrite (stderr) ! memcheck/tests/inits (stderr) ! memcheck/tests/inline (stdout) ! memcheck/tests/inline (stderr) ! memcheck/tests/leak-0 (stderr) ! memcheck/tests/leak-cases-full (stderr) ! memcheck/tests/leak-cases-summary (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-tree (stderr) ! memcheck/tests/linux/brk (stderr) ! memcheck/tests/linux/capget (stderr) ! memcheck/tests/linux/lsframe1 (stderr) ! memcheck/tests/linux/lsframe2 (stderr) ! memcheck/tests/linux/sigqueue (stderr) ! memcheck/tests/linux/stack_changes (stdout) ! memcheck/tests/linux/stack_changes (stderr) ! memcheck/tests/linux/stack_switch (stderr) ! memcheck/tests/linux/timerfd-syscall (stdout) ! memcheck/tests/linux/timerfd-syscall (stderr) ! memcheck/tests/linux/with-space (stdout) ! memcheck/tests/linux/with-space (stderr) ! memcheck/tests/linux-syscalls-2007 (stderr) ! memcheck/tests/linux-syslog-syscall (stderr) ! memcheck/tests/long-supps (stderr) ! memcheck/tests/long_namespace_xml (stdout) ! memcheck/tests/long_namespace_xml (stderr) ! memcheck/tests/mallinfo (stderr) ! memcheck/tests/malloc1 (stderr) ! memcheck/tests/malloc2 (stderr) ! memcheck/tests/malloc3 (stdout) ! memcheck/tests/malloc3 (stderr) ! memcheck/tests/malloc_free_fill (stderr) ! memcheck/tests/malloc_usable (stderr) ! memcheck/tests/manuel1 (stdout) ! memcheck/tests/manuel1 (stderr) ! memcheck/tests/manuel2 (stdout) ! memcheck/tests/manuel2 (stderr) ! memcheck/tests/manuel3 (stderr) ! memcheck/tests/match-overrun (stderr) ! memcheck/tests/memalign2 (stderr) ! memcheck/tests/memalign_test (stderr) ! memcheck/tests/memcmptest (stdout) ! memcheck/tests/memcmptest (stderr) ! memcheck/tests/mempool (stderr) ! memcheck/tests/metadata (stdout) ! memcheck/tests/metadata (stderr) ! memcheck/tests/mismatches (stderr) ! memcheck/tests/mmaptest (stderr) ! memcheck/tests/nanoleak2 (stderr) ! memcheck/tests/nanoleak_supp (stderr) ! memcheck/tests/new_nothrow (stderr) ! memcheck/tests/new_override (stdout) ! memcheck/tests/new_override (stderr) ! memcheck/tests/noisy_child (stderr) ! memcheck/tests/null_socket (stderr) ! memcheck/tests/origin1-yes (stderr) ! memcheck/tests/origin2-not-quite (stderr) ! memcheck/tests/origin3-no (stderr) ! memcheck/tests/origin4-many (stderr) ! memcheck/tests/origin5-bz2 (stdout) ! memcheck/tests/origin5-bz2 (stderr) ! memcheck/tests/origin6-fp (stderr) ! memcheck/tests/overlap (stdout) ! memcheck/tests/overlap (stderr) ! memcheck/tests/partial_load_dflt (stderr) ! memcheck/tests/partial_load_ok (stderr) ! memcheck/tests/partiallydefinedeq (stdout) ! memcheck/tests/partiallydefinedeq (stderr) ! memcheck/tests/pdb-realloc (stderr) ! memcheck/tests/pdb-realloc2 (stdout) ! memcheck/tests/pdb-realloc2 (stderr) ! memcheck/tests/pipe (stderr) ! memcheck/tests/pointer-trace (stderr) ! memcheck/tests/post-syscall (stderr) ! memcheck/tests/realloc1 (stderr) ! memcheck/tests/realloc2 (stderr) ! memcheck/tests/realloc3 (stderr) ! memcheck/tests/sh-mem-random (stdout) ! memcheck/tests/sh-mem-random (stderr) ! memcheck/tests/sh-mem (stderr) ! memcheck/tests/sigaltstack (stderr) ! memcheck/tests/sigkill (stderr) ! memcheck/tests/signal2 (stdout) ! memcheck/tests/signal2 (stderr) ! memcheck/tests/sigprocmask (stderr) ! memcheck/tests/str_tester (stderr) ! memcheck/tests/strchr (stderr) ! memcheck/tests/supp1 (stderr) ! memcheck/tests/supp2 (stderr) ! memcheck/tests/supp_unknown (stderr) ! memcheck/tests/suppfree (stderr) ! memcheck/tests/trivialleak (stderr) ! memcheck/tests/unit_libcbase (stderr) ! memcheck/tests/unit_oset (stdout) ! memcheck/tests/unit_oset (stderr) ! memcheck/tests/varinfo1 (stderr) ! memcheck/tests/varinfo2 (stderr) ! memcheck/tests/varinfo3 (stderr) ! memcheck/tests/varinfo4 (stdout) ! memcheck/tests/varinfo4 (stderr) ! memcheck/tests/varinfo5 (stderr) ! memcheck/tests/varinfo6 (stdout) ! memcheck/tests/varinfo6 (stderr) ! memcheck/tests/vcpu_bz2 (stdout) ! memcheck/tests/vcpu_bz2 (stderr) ! memcheck/tests/vcpu_fbench (stdout) ! memcheck/tests/vcpu_fbench (stderr) ! memcheck/tests/vcpu_fnfns (stdout) ! memcheck/tests/vcpu_fnfns (stderr) ! memcheck/tests/wrap1 (stdout) ! memcheck/tests/wrap1 (stderr) ! memcheck/tests/wrap2 (stdout) ! memcheck/tests/wrap2 (stderr) ! memcheck/tests/wrap3 (stdout) ! memcheck/tests/wrap3 (stderr) ! memcheck/tests/wrap4 (stdout) ! memcheck/tests/wrap4 (stderr) ! memcheck/tests/wrap5 (stdout) ! memcheck/tests/wrap5 (stderr) ! memcheck/tests/wrap6 (stdout) ! memcheck/tests/wrap6 (stderr) ! memcheck/tests/wrap7 (stdout) ! memcheck/tests/wrap7 (stderr) ! memcheck/tests/wrap8 (stdout) ! memcheck/tests/wrap8 (stderr) ! memcheck/tests/writev (stderr) ! memcheck/tests/xml1 (stdout) ! memcheck/tests/xml1 (stderr) ! cachegrind/tests/chdir (stderr) ! cachegrind/tests/clreq (stderr) ! cachegrind/tests/dlclose (stdout) ! cachegrind/tests/dlclose (stderr) ! cachegrind/tests/notpower2 (stderr) ! cachegrind/tests/wrap5 (stdout) ! cachegrind/tests/wrap5 (stderr) ! callgrind/tests/notpower2-hwpref (stderr) ! callgrind/tests/notpower2-use (stderr) ! callgrind/tests/notpower2-wb (stderr) ! callgrind/tests/notpower2 (stderr) ! callgrind/tests/simwork1 (stdout) ! callgrind/tests/simwork1 (stderr) ! callgrind/tests/simwork2 (stdout) ! callgrind/tests/simwork2 (stderr) ! callgrind/tests/simwork3 (stdout) ! callgrind/tests/simwork3 (stderr) ! lackey/tests/true (stderr) ! none/tests/empty-exe (stderr) ! none/tests/linux/mremap (stderr) ! none/tests/ppc32/jm-fp (stdout) ! none/tests/ppc32/jm-vmx (stdout) ! none/tests/ppc32/round (stdout) ! none/tests/ppc32/test_gx (stdout) ! none/tests/ppc32/testVMX (stdout) ! none/tests/ppc32/testVMX (stderr) ! none/tests/ppc64/jm-fp (stdout) ! none/tests/ppc64/jm-vmx (stdout) ! none/tests/ppc64/round (stdout) ! none/tests/shell_valid2 (stderr) ! none/tests/shell_valid3 (stderr) ! none/tests/shell_zerolength (stderr) ! helgrind/tests/bar_bad (stderr) ! helgrind/tests/hg05_race2 (stderr) ! helgrind/tests/tc06_two_races_xml (stderr) ! helgrind/tests/tc22_exit_w_lock (stderr) ! helgrind/tests/tc23_bogus_condwait (stderr) ! drd/tests/bar_bad (stderr) ! drd/tests/circular_buffer (stderr) ! drd/tests/pth_cancel_locked (stderr) ! drd/tests/pth_cleanup_handler (stderr) ! drd/tests/tc23_bogus_condwait (stderr) ! drd/tests/unit_bitmap (stderr) ! drd/tests/unit_vc (stderr) ! exp-ptrcheck/tests/bad_percentify (stdout) ! exp-ptrcheck/tests/bad_percentify (stderr) ! exp-ptrcheck/tests/base (stderr) ! exp-ptrcheck/tests/ccc (stderr) ! exp-ptrcheck/tests/fp (stderr) ! exp-ptrcheck/tests/globalerr (stderr) ! exp-ptrcheck/tests/hackedbz2 (stdout) ! exp-ptrcheck/tests/hackedbz2 (stderr) ! exp-ptrcheck/tests/hp_bounds (stderr) ! exp-ptrcheck/tests/hp_dangle (stderr) ! exp-ptrcheck/tests/hsg (stdout) ! exp-ptrcheck/tests/hsg (stderr) ! exp-ptrcheck/tests/justify (stderr) ! exp-ptrcheck/tests/partial_bad (stderr) ! exp-ptrcheck/tests/partial_good (stderr) ! exp-ptrcheck/tests/preen_invars (stdout) ! exp-ptrcheck/tests/preen_invars (stderr) ! exp-ptrcheck/tests/pth_create (stderr) ! exp-ptrcheck/tests/pth_specific (stderr) ! exp-ptrcheck/tests/realloc (stderr) ! exp-ptrcheck/tests/stackerr (stderr) ! exp-ptrcheck/tests/strcpy (stderr) ! exp-ptrcheck/tests/supp (stderr) ! exp-ptrcheck/tests/tricky (stderr) ! exp-ptrcheck/tests/unaligned (stderr) ! exp-ptrcheck/tests/zero (stderr) ! --- 6,27 ---- ! Last 20 lines of verbose log follow echo ! make[3]: Entering directory `/net/home/bart/software/valgrind/nightly/valgrind-new/VEX' ! make[3]: Nothing to be done for `check-am'. ! make[3]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/VEX' ! make[2]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/VEX' ! Making check in coregrind ! make[2]: Entering directory `/net/home/bart/software/valgrind/nightly/valgrind-new/coregrind' ! make check-am ! make[3]: Entering directory `/net/home/bart/software/valgrind/nightly/valgrind-new/coregrind' ! gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -I../coregrind -DVG_LIBDIR="\"/home/bart/software/valgrind/nightly/valgrind-new/Inst/lib/valgrind"\" -DVG_PLATFORM="\"ppc64-linux\"" -m64 -O2 -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-format-zero-length -fno-strict-aliasing -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT libcoregrind_ppc64_linux_a-m_libcassert.o -MD -MP -MF .deps/libcoregrind_ppc64_linux_a-m_libcassert.Tpo -c -o libcoregrind_ppc64_linux_a-m_libcassert.o `test -f 'm_libcassert.c' || echo './'`m_libcassert.c ! m_libcassert.c: In function âreport_and_quitâ: ! m_libcassert.c:191: error: invalid type argument of â->â (have âUnwindStartRegsâ) ! m_libcassert.c:191: error: invalid type argument of â->â (have âUnwindStartRegsâ) ! m_libcassert.c:191: error: invalid type argument of â->â (have âUnwindStartRegsâ) ! make[3]: *** [libcoregrind_ppc64_linux_a-m_libcassert.o] Error 1 ! make[3]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/coregrind' ! make[2]: *** [check] Error 2 ! make[2]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new/coregrind' ! make[1]: *** [check-recursive] Error 1 ! make[1]: Leaving directory `/net/home/bart/software/valgrind/nightly/valgrind-new' ! make: *** [check] Error 2 |
|
From: Vince W. <vi...@cs...> - 2010-01-02 05:19:36
|
Hello with the ARM work hitting the tree, I thought I'd see about getting some arm tests working for the exp-bbv tool. The patch below is a first attempt. The results files currently aren't correct; the only ARM machine I have access to is armv5 which doesn't seem to be supported currently. I hacked the configure script to allow arm5* and modified dispatch-arm-linux.S to not touch FPSCR but that doesn't seem to be enough; valgrind builds just fine but any programs run through it instantly give illegal instruction errrors. Vince Index: exp-bbv/tests/Makefile.am =================================================================== --- exp-bbv/tests/Makefile.am (revision 10988) +++ exp-bbv/tests/Makefile.am (working copy) @@ -16,8 +16,11 @@ if VGCONF_PLATFORMS_INCLUDE_PPC32_LINUX SUBDIRS += ppc32-linux endif +if VGCONF_PLATFORMS_INCLUDE_ARM_LINUX +SUBDIRS += arm-linux +endif -DIST_SUBDIRS = x86 x86-linux amd64-linux ppc32-linux . +DIST_SUBDIRS = x86 x86-linux amd64-linux ppc32-linux arm-linux . dist_noinst_SCRIPTS = \ filter_bb \ Index: exp-bbv/tests/arm-linux/million.stderr.exp =================================================================== --- exp-bbv/tests/arm-linux/million.stderr.exp (revision 0) +++ exp-bbv/tests/arm-linux/million.stderr.exp (revision 0) @@ -0,0 +1,6 @@ +# Thread 1 +# Total intervals: 10 (Interval Size 100000) +# Total instructions: 1000000 +# Total reps: 0 +# Unique reps: 0 +# Total fldcw instructions: 0 Index: exp-bbv/tests/arm-linux/ll.vgtest =================================================================== --- exp-bbv/tests/arm-linux/ll.vgtest (revision 0) +++ exp-bbv/tests/arm-linux/ll.vgtest (revision 0) @@ -0,0 +1,5 @@ +prog: ll +vgopts: --interval-size=1000 --bb-out-file=ll.out.bb +post: cat ll.out.bb +cleanup: rm ll.out.bb + Index: exp-bbv/tests/arm-linux/million.post.exp =================================================================== --- exp-bbv/tests/arm-linux/million.post.exp (revision 0) +++ exp-bbv/tests/arm-linux/million.post.exp (revision 0) @@ -0,0 +1,18 @@ +T:1:5 :2:99996 +T:2:100000 +T:2:100000 +T:2:100000 +T:2:100000 +T:2:100000 +T:2:100000 +T:2:100000 +T:2:100000 + + +# Thread 1 +# Total intervals: 10 (Interval Size 100000) +# Total instructions: 1000000 +# Total reps: 0 +# Unique reps: 0 +# Total fldcw instructions: 0 + Index: exp-bbv/tests/arm-linux/ll.stdout.exp =================================================================== --- exp-bbv/tests/arm-linux/ll.stdout.exp (revision 0) +++ exp-bbv/tests/arm-linux/ll.stdout.exp (revision 0) @@ -0,0 +1,16 @@ +[0;1;37;47m#################################################################[0;30;47m#####[1;37m#########[1;37;40m +[0;1;37;47m################################################################[0;30;47m#######[1;37m########[1;37;40m +[0;1;37;47m###################[31m#[37m############################################[0;30;47m##[1;37mO[0;30;47m#[1;37mO[0;30;47m##[1;37m########[1;37;40m +[0;1;37;47m##[0;30;47m######[1;37m##########[31m##[0;30;47m#[1;37m###########################################[0;30;47m#[1;33m#####[0;30;47m#[1;37m########[1;37;40m +[0;1;37;47m####[0;30;47m##[1;37m#############[0;30;47m#[1;37m##########################################[0;30;47m##[1;37m##[33m###[37m##[0;30;47m##[1;37m######[1;37;40m +[0;1;37;47m####[0;30;47m##[1;37m#########[31m###[37m###[0;30;47m###[1;37m#[0;30;47m####[1;37m###[0;30;47m###[1;37m####[0;30;47m###[1;37m##[0;30;47m#####[1;37m#[0;30;47m######[1;37m#####[0;30;47m#[1;37m##########[0;30;47m##[1;37m#####[1;37;40m +[0;1;37;47m####[0;30;47m##[1;37m########[31m#[37m##[31m#[0;30;47m#[1;37m###[0;30;47m###[1;37m####[0;30;47m##[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m####[0;30;47m##[1;37m###[0;30;47m##[1;37m#######[0;30;47m#[1;37m############[0;30;47m##[1;37m####[1;37;40m +[0;1;37;47m####[0;30;47m##[1;37m#######[31m#[37m###[31m#[0;30;47m#[1;37m###[0;30;47m##[1;37m#####[0;30;47m##[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m######[0;30;47m###[1;37m#########[0;30;47m#[1;37m############[0;30;47m###[1;37m###[1;37;40m +[0;1;37;47m####[0;30;47m##[1;37m##########[31m##[0;30;47m#[1;37m###[0;30;47m##[1;37m#####[0;30;47m##[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m######[0;30;47m###[1;37m########[33m##[0;30;47m#[1;37m###########[0;30;47m##[1;33m#[37m###[1;37;40m +[0;1;37;47m####[0;30;47m##[1;37m#######[0;30;47m#[1;37m#[31m##[0;30;47m#[1;37m####[0;30;47m##[1;37m#####[0;30;47m##[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m#####[0;30;47m##[1;37m#[0;30;47m##[1;37m#####[33m######[0;30;47m#[1;37m#######[30m#[33m######[37m#[1;37;40m +[0;1;37;47m####[0;30;47m##[1;37m######[0;30;47m##[1;37m#[31m##[0;30;47m#[1;37m#[0;30;47m#[1;37m##[0;30;47m##[1;37m#####[0;30;47m##[1;37m##[0;30;47m###[1;37m###[0;30;47m###[1;37m####[0;30;47m##[1;37m###[0;30;47m##[1;37m####[33m#######[0;30;47m#[1;37m#####[0;30;47m#[1;33m#######[37m#[1;37;40m +[0;1;37;47m##[0;30;47m############[1;37m##[0;30;47m###[1;37m##[0;30;47m####[1;37m###[0;30;47m####[1;37m###[0;30;47m####[1;37m#[0;30;47m###[1;37m#[0;30;47m#####[1;37m#[0;30;47m######[1;37m###[33m#####[30m#[0;30;47m#####[1m#[33m#####[37m###[1;37;40m + +[9CLinux Version 2.6.29, Compiled #1 Wed May 13 15:51:54 UTC 2009 +[9COne 600.000000MHz PPC 745/755, 512M RAM, 49.79 Bogomips Total +[36Chenparma Index: exp-bbv/tests/arm-linux/ll.stderr.exp =================================================================== --- exp-bbv/tests/arm-linux/ll.stderr.exp (revision 0) +++ exp-bbv/tests/arm-linux/ll.stderr.exp (revision 0) @@ -0,0 +1,6 @@ +# Thread 1 +# Total intervals: 40 (Interval Size 1000) +# Total instructions: 40330 +# Total reps: 0 +# Unique reps: 0 +# Total fldcw instructions: 0 Index: exp-bbv/tests/arm-linux/million.S =================================================================== --- exp-bbv/tests/arm-linux/million.S (revision 0) +++ exp-bbv/tests/arm-linux/million.S (revision 0) @@ -0,0 +1,27 @@ + + # count for 1 million instructions + # total is 1 + 333332*3 + 2 + + +# Sycscalls +.equ SYSCALL_BASE, 0x900000 +.equ SYSCALL_EXIT, 1 + + .globl _start +_start: + + ldr r2,count @ set count + +big_loop: + add r2,r2,#-1 + cmp r2,#0 + bne big_loop @ repeat till zero + + @================================ + @ Exit + @================================ +exit: + mov r0,#0 @ result is zero + swi SYSCALL_BASE+SYSCALL_EXIT @ and exit + +count: .word 333332 Index: exp-bbv/tests/arm-linux/ll.post.exp =================================================================== --- exp-bbv/tests/arm-linux/ll.post.exp (revision 0) +++ exp-bbv/tests/arm-linux/ll.post.exp (revision 0) @@ -0,0 +1,49 @@ +T:1:16 :8:10 :6:32 :2:56 :9:48 :10:666 :4:90 :5:36 :7:2 :3:45 +T:8:5 :6:20 :2:34 :9:80 :10:775 :4:42 :5:22 :7:1 :3:21 +T:8:5 :6:16 :2:27 :9:64 :10:824 :4:30 :5:18 :7:1 :3:15 +T:8:5 :6:10 :2:18 :9:80 :10:865 :4:6 :5:12 :7:1 :3:3 +T:8:5 :6:10 :2:18 :9:96 :10:858 :5:12 :7:1 +T:8:5 :6:10 :2:18 :9:80 :10:865 :4:6 :5:12 :7:1 :3:3 +T:6:6 :2:9 :9:36 :10:943 :5:6 +T:8:5 :6:8 :2:15 :9:92 :10:869 :5:10 :7:1 +T:6:14 :2:21 :9:112 :10:839 :5:14 +T:8:5 :6:6 :2:12 :9:64 :10:902 :5:10 :7:1 +T:8:5 :6:8 :2:15 :9:80 :10:883 :5:8 :7:1 +T:6:8 :2:12 :9:64 :10:908 :5:8 +T:6:6 :2:9 :9:48 :10:931 :5:6 +T:8:5 :6:4 :2:9 :9:48 :10:927 :5:6 :7:1 +T:6:6 :2:9 :9:48 :10:931 :5:6 +T:8:5 :6:6 :2:12 :9:64 :10:904 :5:8 :7:1 +T:6:2 :2:3 :9:16 :10:977 :5:2 +T:8:5 :6:12 :2:21 :9:96 :10:842 :4:6 :5:14 :7:1 :3:3 +T:6:6 :2:9 :9:48 :10:931 :5:6 +T:6:6 :2:9 :9:48 :10:931 :5:6 +T:8:5 :6:14 :2:24 :9:112 :10:819 :4:6 :5:16 :7:1 :3:3 +T:8:5 :6:6 :2:12 :9:64 :10:904 :5:8 :7:1 +T:6:6 :2:9 :9:48 :10:931 :5:6 +T:8:5 :6:8 :2:15 :9:80 :10:881 :5:10 :7:1 +T:8:5 :6:10 :2:18 :9:96 :10:858 :5:12 :7:1 +T:6:10 :2:15 :9:80 :10:885 :5:10 +T:8:5 :6:10 :2:15 :9:64 :10:470 :4:6 :5:12 :7:1 :3:3 :11:2 :12:7 :13:405 +T:13:1000 +T:13:1000 +T:13:1000 +T:13:1000 +T:13:1000 +T:13:1000 +T:13:1000 +T:13:1000 +T:13:1000 +T:13:1000 +T:16:2 :19:2 :20:2 :21:2 :22:2 :23:1 :17:268 :18:10 :24:4 :25:6 :26:3 :30:3 :31:2 :12:28 :13:636 :14:8 :15:4 :27:12 :28:2 :29:3 +T:33:3 :34:4 :46:2 :47:4 :48:2 :49:4 :53:2 :54:4 :35:8 :37:246 :36:168 :38:8 :40:27 :39:22 :41:8 :44:51 :42:38 :43:34 :45:6 :17:116 :18:10 :32:10 :13:183 :14:4 :15:2 :27:12 :50:16 :28:2 :51:2 :52:2 +T:55:2 :56:1 :35:4 :37:381 :36:256 :38:4 :40:12 :39:10 :41:4 :44:15 :42:12 :43:10 :45:3 :17:64 :18:2 :24:4 :25:6 :26:3 :30:3 :31:2 :12:28 :13:148 :14:6 :15:3 :27:12 :28:2 :29:3 + + +# Thread 1 +# Total intervals: 40 (Interval Size 1000) +# Total instructions: 40330 +# Total reps: 0 +# Unique reps: 0 +# Total fldcw instructions: 0 + Index: exp-bbv/tests/arm-linux/filter_stderr =================================================================== --- exp-bbv/tests/arm-linux/filter_stderr (revision 0) +++ exp-bbv/tests/arm-linux/filter_stderr (revision 0) @@ -0,0 +1,5 @@ +#! /bin/sh + +../filter_stderr + + Property changes on: exp-bbv/tests/arm-linux/filter_stderr ___________________________________________________________________ Added: svn:executable + * Index: exp-bbv/tests/arm-linux/ll.S =================================================================== --- exp-bbv/tests/arm-linux/ll.S (revision 0) +++ exp-bbv/tests/arm-linux/ll.S (revision 0) @@ -0,0 +1,519 @@ +# +# linux_logo in ARM assembly language +# based on the code from ll_asm-0.41 +# +# By Vince Weaver <vince _at_ deater.net> +# +# Modified to remove non-deterministic system calls +# And to avoid reading from /proc + +.include "../logo.include" + +# offsets into the results returned by the uname syscall +.equ U_SYSNAME,0 +.equ U_NODENAME,65 +.equ U_RELEASE,65*2 +.equ U_VERSION,(65*3) +.equ U_MACHINE,(65*4) +.equ U_DOMAINNAME,65*5 + +# offset into the results returned by the sysinfo syscall +.equ S_TOTALRAM,16 + +# Sycscalls +.equ SYSCALL_BASE, 0x900000 +.equ SYSCALL_EXIT, 1 +#.equ SYSCALL_READ, 3 +.equ SYSCALL_WRITE, 4 +#.equ SYSCALL_OPEN, 5 +#.equ SYSCALL_CLOSE, 6 +#.equ SYSCALL_SYSINFO, 116 +#.equ SYSCALL_UNAME, 122 + +# +.equ STDIN,0 +.equ STDOUT,1 +.equ STDERR,2 + + .globl _start +_start: + ldr r11,data_addr + ldr r12,bss_addr + + #========================= + # PRINT LOGO + #========================= + +# LZSS decompression algorithm implementation +# by Stephan Walter 2002, based on LZSS.C by Haruhiko Okumura 1989 +# optimized some more by Vince Weaver + + ldr r1,out_addr @ buffer we are printing to + + mov r2,#(N-F) @ R + + add r3,r11,#(logo-data_begin) + @ r3 points to logo data + ldr r8,logo_end_addr + @ r8 points to logo end + ldr r9,text_addr @ r9 points to text buf + +decompression_loop: + ldrb r4,[r3],#+1 @ load a byte, increment pointer + + mov r5,#0xff @ load top as a hackish 8-bit counter + orr r5,r4,r5,LSL #8 @ shift 0xff left by 8 and or in the byte we loaded + +test_flags: + cmp r3,r8 @ have we reached the end? + bge done_logo @ if so, exit + + lsrs r5,#1 @ shift bottom bit into carry flag + bcs discrete_char @ if set, we jump to discrete char + +offset_length: + ldrb r0,[r3],#+1 @ load a byte, increment pointer + ldrb r4,[r3],#+1 @ load a byte, increment pointer + @ we can't load halfword as no unaligned loads on arm + + orr r4,r0,r4,LSL #8 @ merge back into 16 bits + @ this has match_length and match_position + + mov r7,r4 @ copy r4 to r7 + @ no need to mask r7, as we do it + @ by default in output_loop + + mov r0,#(THRESHOLD+1) + add r6,r0,r4,LSR #(P_BITS) + @ r6 = (r4 >> P_BITS) + THRESHOLD + 1 + @ (=match_length) + +output_loop: + ldr r0,pos_mask @ urgh, can't handle simple constants + and r7,r7,r0 @ mask it + ldrb r4,[r9,r7] @ load byte from text_buf[] + add r7,r7,#1 @ advance pointer in text_buf + +store_byte: + strb r4,[r1],#+1 @ store a byte, increment pointer + strb r4,[r9,r2] @ store a byte to text_buf[r] + add r2,r2,#1 @ r++ + mov r0,#(N) + sub r0,r0,#1 @ grrr no way to get this easier + and r2,r2,r0 @ mask r + + subs r6,r6,#1 @ decement count + bne output_loop @ repeat until k>j + + tst r5,#0xff00 @ are the top bits 0? + bne test_flags @ if not, re-load flags + + b decompression_loop + +discrete_char: + ldrb r4,[r3],#+1 @ load a byte, increment pointer + mov r6,#1 @ we set r6 to one so byte + @ will be output once + + b store_byte @ and store it + + +# end of LZSS code + +done_logo: + ldr r1,out_addr @ buffer we are printing to + + bl write_stdout @ print the logo + + #========================== + # PRINT VERSION + #========================== +first_line: + + mov r0,#0 +# add r0,r12,#(uname_info-data_begin) @ uname struct +# swi SYSCALL_BASE+SYSCALL_UNAME @ do syscall + + add r1,r11,#(uname_info-data_begin) + @ os-name from uname "Linux" + + ldr r10,out_addr @ point r10 to out_buffer + + bl strcat @ call strcat + + + add r1,r11,#(ver_string-data_begin) @ source is " Version " + bl strcat @ call strcat + + add r1,r11,#((uname_info-data_begin)+U_RELEASE) + @ version from uname, ie "2.6.20" + bl strcat @ call strcat + + add r1,r11,#(compiled_string-data_begin) + @ source is ", Compiled " + bl strcat @ call strcat + + add r1,r11,#((uname_info-data_begin)+U_VERSION) + @ compiled date + bl strcat @ call strcat + + mov r3,#0xa + strb r3,[r10],#+1 @ store a linefeed, increment pointer + strb r0,[r10],#+1 @ NUL terminate, increment pointer + + bl center_and_print @ center and print + + @=============================== + @ Middle-Line + @=============================== +middle_line: + @========= + @ Load /proc/cpuinfo into buffer + @========= + + ldr r10,out_addr @ point r10 to out_buffer + +# add r0,r11,#(cpuinfo-data_begin) + @ '/proc/cpuinfo' +# mov r1,#0 @ 0 = O_RDONLY <bits/fcntl.h> +# swi SYSCALL_BASE+SYSCALL_OPEN + @ syscall. return in r0? +# mov r5,r0 @ save our fd +# ldr r1,disk_addr +# mov r2,#4096 + @ 4096 is maximum size of proc file ;) +# swi SYSCALL_BASE+SYSCALL_READ + +# mov r0,r5 +# swi SYSCALL_BASE+SYSCALL_CLOSE + @ close (to be correct) + + + @============= + @ Number of CPUs + @============= +number_of_cpus: + + add r1,r11,#(one-data_begin) + # cheat. Who has an SMP arm? + bl strcat + + @========= + @ MHz + @========= +print_mhz: + + @ the arm system I have does not report MHz + + @========= + @ Chip Name + @========= +chip_name: + mov r0,#'s' + mov r1,#'o' + mov r2,#'r' + mov r3,#' ' + bl find_string + @ find 'sor\t: ' and grab up to ' ' + + add r1,r11,#(processor-data_begin) + @ print " Processor, " + bl strcat + + @======== + @ RAM + @======== + +# add r0,r12,#(sysinfo_buff-data_begin) +# swi SYSCALL_BASE+SYSCALL_SYSINFO +# @ sysinfo() syscall + + ldr r3,[r11,#((sysinfo_buff-data_begin)+S_TOTALRAM)] + @ size in bytes of RAM + movs r3,r3,lsr #20 @ divide by 1024*1024 to get M + adc r3,r3,#0 @ round + + mov r0,#1 + bl num_to_ascii + + add r1,r11,#(ram_comma-data_begin) + @ print 'M RAM, ' + bl strcat @ call strcat + + + @======== + @ Bogomips + @======== + + mov r0,#'I' + mov r1,#'P' + mov r2,#'S' + mov r3,#'\n' + bl find_string + + add r1,r11,#(bogo_total-data_begin) + bl strcat @ print bogomips total + + bl center_and_print @ center and print + + #================================= + # Print Host Name + #================================= +last_line: + ldr r10,out_addr @ point r10 to out_buffer + + add r1,r11,#((uname_info-data_begin)+U_NODENAME) + @ host name from uname() + bl strcat @ call strcat + + bl center_and_print @ center and print + + add r1,r11,#(default_colors-data_begin) + @ restore colors, print a few linefeeds + bl write_stdout + + + @================================ + @ Exit + @================================ +exit: + mov r0,#0 @ result is zero + swi SYSCALL_BASE+SYSCALL_EXIT @ and exit + + + @================================= + @ FIND_STRING + @================================= + @ r0,r1,r2 = string to find + @ r3 = char to end at + @ r5 trashed +find_string: + ldr r7,disk_addr @ look in cpuinfo buffer +find_loop: + ldrb r5,[r7],#+1 @ load a byte, increment pointer + cmp r5,r0 @ compare against first byte + ldrb r5,[r7] @ load next byte + cmpeq r5,r1 @ if first byte matched, comp this one + ldrb r5,[r7,#+1] @ load next byte + cmpeq r5,r2 @ if first two matched, comp this one + beq find_colon @ if all 3 matched, we are found + + cmp r5,#0 @ are we at EOF? + beq done @ if so, done + + b find_loop + +find_colon: + ldrb r5,[r7],#+1 @ load a byte, increment pointer + cmp r5,#':' + bne find_colon @ repeat till we find colon + + add r7,r7,#1 @ skip the space + +store_loop: + ldrb r5,[r7],#+1 @ load a byte, increment pointer + strb r5,[r10],#+1 @ store a byte, increment pointer + cmp r5,r3 + bne store_loop + +almost_done: + mov r0,#0 + strb r0,[r10],#-1 @ replace last value with NUL + +done: + blx r14 @ return + + #================================ + # strcat + #================================ + # value to cat in r1 + # output buffer in r10 + # r3 trashed +strcat: + ldrb r3,[r1],#+1 @ load a byte, increment pointer + strb r3,[r10],#+1 @ store a byte, increment pointer + cmp r3,#0 @ is it zero? + bne strcat @ if not loop + sub r10,r10,#1 @ point to one less than null + bx r14 @ return + + + #============================== + # center_and_print + #============================== + # string to center in at output_buffer + +center_and_print: + + stmfd SP!,{LR} @ store return address on stack + + add r1,r11,#(escape-data_begin) + @ we want to output ^[[ + bl write_stdout + +str_loop2: + ldr r2,out_addr @ point r2 to out_buffer + sub r2,r10,r2 @ get length by subtracting + + rsb r2,r2,#81 @ reverse subtract! r2=81-r2 + @ we use 81 to not count ending \n + + bne done_center @ if result negative, don't center + + lsrs r3,r2,#1 @ divide by 2 + adc r3,r3,#0 @ round? + + mov r0,#0 @ print to stdout + bl num_to_ascii @ print number of spaces + + add r1,r11,#(C-data_begin) + @ we want to output C + bl write_stdout + +done_center: + ldr r1,out_addr @ point r1 to out_buffer + ldmfd SP!,{LR} @ restore return address from stack + + #================================ + # WRITE_STDOUT + #================================ + # r1 has string + # r0,r2,r3 trashed +write_stdout: + mov r2,#0 @ clear count + +str_loop1: + add r2,r2,#1 + ldrb r3,[r1,r2] + cmp r3,#0 + bne str_loop1 @ repeat till zero + +write_stdout_we_know_size: + mov r0,#STDOUT @ print to stdout + swi SYSCALL_BASE+SYSCALL_WRITE @ run the syscall + bx r14 @ return + + + @############################# + @ num_to_ascii + @############################# + @ r3 = value to print + @ r0 = 0=stdout, 1=strcat + +num_to_ascii: + stmfd SP!,{r10,LR} @ store return address on stack + add r10,r12,#((ascii_buffer-bss_begin)) + add r10,r10,#10 + @ point to end of our buffer + + mov r4,#10 @ we'll be dividing by 10 +div_by_10: + bl divide @ Q=r7,$0, R=r8,$1 + add r8,r8,#0x30 @ convert to ascii + strb r8,[r10],#-1 @ store a byte, decrement pointer + adds r3,r7,#0 @ move Q in for next divide, update flags + bne div_by_10 @ if Q not zero, loop + +write_out: + add r1,r10,#1 @ adjust pointer + ldmfd SP!,{r10,LR} @ restore return address from stack + + cmp r0,#0 + bne strcat @ if 1, strcat + + b write_stdout @ else, fallthrough to stdout + + + @=================================================== + @ Divide - because ARM has no hardware int divide + @ yes this is an awful algorithm, but simple + @ and uses few registers + @================================================== + @ r3=numerator r4=denominator + @ r7=quotient r8=remainder + @ r5=trashed +divide: + + mov r7,#0 @ zero out quotient +divide_loop: + mul r5,r7,r4 @ multiply Q by denominator + add r7,r7,#1 @ increment quotient + cmp r5,r3 @ is it greater than numerator? + ble divide_loop @ if not, loop + sub r7,r7,#2 @ otherwise went too far, decrement + @ and done + + mul r5,r7,r4 @ calculate remainder + sub r8,r3,r5 @ R=N-(Q*D) + blx r14 @ return + + +bss_addr: .word bss_begin +data_addr: .word data_begin +out_addr: .word out_buffer +disk_addr: .word disk_buffer +logo_end_addr: .word logo_end +pos_mask: .word ((POSITION_MASK<<8)+0xff) +text_addr: .word text_buf + +#=========================================================================== +# section .data +#=========================================================================== +.data +data_begin: +ver_string: .ascii " Version \0" +compiled_string: .ascii ", Compiled \0" +processor: .ascii " Processor, \0" +ram_comma: .ascii "M RAM, \0" +bogo_total: .ascii " Bogomips Total\n\0" + +default_colors: .ascii "\033[0m\n\n\0" +escape: .ascii "\033[\0" +C: .ascii "C\0" + +one: .ascii "One \0" + +uname_info: +.ascii "Linux\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "lindt\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "2.6.32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "#1 Wed May 13 15:51:54 UTC 2009\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + + +disk_buffer: +.ascii "Processor : Feroceon 88FR131 rev 1 (v5l)\n" +.ascii "BogoMIPS : 1192.75\n" +.ascii "Features : swp half thumb fastmult edsp \n" +.ascii "CPU implementer : 0x56\n" +.ascii "CPU architecture: 5TE\n" +.ascii "CPU variant : 0x2\n" +.ascii "CPU part : 0x131\n" +.ascii "CPU revision : 1\n" +.ascii "\n" +.ascii "Hardware : Marvell SheevaPlug Reference Board\n" +.ascii "Revision : 0000\n" +.ascii "Serial : 0000000000000000\n\0" + + +sysinfo_buff: +.long 0,0,0,0,512*1024*1024,0,0,0 + +.include "../logo.lzss_new" + + +#============================================================================ +# section .bss +#============================================================================ +.bss +bss_begin: +.lcomm ascii_buffer,10 +.lcomm text_buf, (N+F-1) +.lcomm out_buffer,16384 Index: exp-bbv/tests/arm-linux/Makefile.am =================================================================== --- exp-bbv/tests/arm-linux/Makefile.am (revision 0) +++ exp-bbv/tests/arm-linux/Makefile.am (revision 0) @@ -0,0 +1,22 @@ +include $(top_srcdir)/Makefile.tool-tests.am + +dist_noinst_SCRIPTS = filter_stderr + +check_PROGRAMS = \ + million ll + +EXTRA_DIST = \ + ll.stderr.exp \ + ll.stdout.exp \ + ll.post.exp \ + ll.vgtest \ + million.stderr.exp \ + million.post.exp \ + million.vgtest + +AM_CCASFLAGS += -ffreestanding + +LDFLAGS += -nostartfiles -nodefaultlibs + +ll_SOURCES = ll.S +million_SOURCES = million.S Index: exp-bbv/tests/arm-linux/million.vgtest =================================================================== --- exp-bbv/tests/arm-linux/million.vgtest (revision 0) +++ exp-bbv/tests/arm-linux/million.vgtest (revision 0) @@ -0,0 +1,5 @@ +prog: million +vgopts: --interval-size=100000 --bb-out-file=million.out.bb +post: cat million.out.bb +cleanup: rm million.out.bb + Index: configure.in =================================================================== --- configure.in (revision 10988) +++ configure.in (working copy) @@ -1933,6 +1933,7 @@ exp-bbv/tests/x86-linux/Makefile exp-bbv/tests/amd64-linux/Makefile exp-bbv/tests/ppc32-linux/Makefile + exp-bbv/tests/arm-linux/Makefile ]) AC_OUTPUT |
|
From: Tom H. <th...@cy...> - 2010-01-02 03:49:46
|
Nightly build on lloyd ( x86_64, Fedora 7 ) Started at 2010-01-02 03:05:05 GMT Ended at 2010-01-02 03:49:22 GMT 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 == 531 tests, 2 stderr failures, 0 stdout failures, 0 post failures == memcheck/tests/x86-linux/scalar (stderr) helgrind/tests/tc06_two_races_xml (stderr) |
|
From: Tom H. <th...@cy...> - 2010-01-02 03:36:11
|
Nightly build on mg ( x86_64, Fedora 9 ) Started at 2010-01-02 03:10:06 GMT Ended at 2010-01-02 03:35:58 GMT 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 == 538 tests, 2 stderr failures, 0 stdout failures, 0 post failures == memcheck/tests/x86-linux/scalar (stderr) helgrind/tests/tc06_two_races_xml (stderr) |