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
(19) |
3
(17) |
4
(15) |
5
(20) |
6
(29) |
7
(13) |
8
(16) |
|
9
(20) |
10
(5) |
11
(10) |
12
(17) |
13
(17) |
14
(22) |
15
(8) |
|
16
(4) |
17
(15) |
18
(7) |
19
(14) |
20
(16) |
21
(18) |
22
(9) |
|
23
(2) |
24
(12) |
25
(3) |
26
(3) |
27
(20) |
28
(9) |
29
(4) |
|
30
(3) |
31
(4) |
|
|
|
|
|
|
From: <sv...@va...> - 2012-12-27 17:46:19
|
sewardj 2012-12-27 17:46:10 +0000 (Thu, 27 Dec 2012)
New Revision: 13209
Log:
is_stack_access: don't iterate over possibly non-existent stmts. This
has been observed to cause the JIT to segfault when using DRD on ARM.
Modified files:
trunk/drd/drd_load_store.c
Modified: trunk/drd/drd_load_store.c (+1 -1)
===================================================================
--- trunk/drd/drd_load_store.c 2012-12-27 17:21:46 +00:00 (rev 13208)
+++ trunk/drd/drd_load_store.c 2012-12-27 17:46:10 +00:00 (rev 13209)
@@ -312,7 +312,7 @@
if (addr_expr->tag == Iex_RdTmp)
{
int i;
- for (i = 0; i < bb->stmts_size; i++)
+ for (i = 0; i < bb->stmts_used; i++)
{
if (bb->stmts[i]
&& bb->stmts[i]->tag == Ist_WrTmp
|
|
From: <sv...@va...> - 2012-12-27 17:21:57
|
florian 2012-12-27 17:21:46 +0000 (Thu, 27 Dec 2012)
New Revision: 13208
Log:
Update list of ignored files.
Modified directories:
trunk/drd/tests/
Modified: trunk/drd/tests/
Property changed: trunk/drd/tests (+0 -0)
___________________________________________________________________
Name: svn:ignore
- *.dSYM
*.stderr.diff*
*.stderr.out
*.stdout.diff*
*.stdout.out
.deps
annotate_barrier
annotate_hb_err
annotate_hb_race
annotate_ignore_rw
annotate_ignore_write
annotate_publish_hg
annotate_rwlock
annotate_smart_pointer
annotate_static
annotate_trace_memory
atomic_var
bar_bad
bar_trivial
boost_thread
bug-235681
circular_buffer
custom_alloc
drd_bitmap_test
fp_race
free_is_write
hg01_all_ok
hg02_deadlock
hg03_inherit
hg04_race
hg05_race2
hg06_readshared
hold_lock
linuxthreads_det
Makefile
Makefile.in
matinv
memory_allocation
monitor_example
new_delete
omp_matinv
omp_prime
omp_printf
pth_barrier
pth_barrier_race
pth_barrier_reinit
pth_barrier_thr_cr
pth_broadcast
pth_cancel_locked
pth_cleanup_handler
pth_cond_race
pth_create_chain
pth_create_glibc_2_0
pth_detached
pth_detached3
pth_detached_sem
pth_inconsistent_cond_wait
pth_mutex_reinit
pth_process_shared_mutex
pth_spinlock
pth_uninitialized_cond
qt4_atomic
qt4_mutex
qt4_rwlock
qt4_semaphore
read_after_free
recursive_mutex
rwlock_race
rwlock_test
rwlock_type_checking
sem_as_mutex
sem_open
sem_wait
sigalrm
std_thread
tc01_simple_race
tc02_simple_tls
tc03_re_excl
tc04_free_lock
tc05_simple_race
tc06_two_races
tc07_hbl1
tc08_hbl2
tc09_bad_unlock
tc10_rec_lock
tc11_XCHG
tc12_rwl_trivial
tc13_laog1
tc15_laog_lockdel
tc16_byterace
tc17_sembar
tc18_semabuse
tc19_shadowmem
tc20_verifywrap
tc21_pthonce
tc22_exit_w_lock
tc23_bogus_condwait
tc24_nonzero_sem
threaded-fork
thread_name
trylock
tsan_unittest
unit_bitmap
unit_vc
vg_regtest.tmp*
+ *.dSYM
*.stderr.diff*
*.stderr.out
*.stdout.diff*
*.stdout.out
.deps
annotate_barrier
annotate_hb_err
annotate_hb_race
annotate_ignore_rw
annotate_ignore_write
annotate_publish_hg
annotate_rwlock
annotate_smart_pointer
annotate_static
annotate_trace_memory
atomic_var
bar_bad
bar_trivial
boost_thread
bug-235681
circular_buffer
custom_alloc
drd_bitmap_test
fp_race
free_is_write
hg01_all_ok
hg02_deadlock
hg03_inherit
hg04_race
hg05_race2
hg06_readshared
hold_lock
linuxthreads_det
Makefile
Makefile.in
matinv
memory_allocation
monitor_example
new_delete
omp_matinv
omp_prime
omp_printf
pth_barrier
pth_barrier_race
pth_barrier_reinit
pth_barrier_thr_cr
pth_broadcast
pth_cancel_locked
pth_cleanup_handler
pth_cond_destroy_busy
pth_cond_race
pth_create_chain
pth_create_glibc_2_0
pth_detached
pth_detached3
pth_detached_sem
pth_inconsistent_cond_wait
pth_mutex_reinit
pth_process_shared_mutex
pth_spinlock
pth_uninitialized_cond
qt4_atomic
qt4_mutex
qt4_rwlock
qt4_semaphore
read_after_free
recursive_mutex
rwlock_race
rwlock_test
rwlock_type_checking
sem_as_mutex
sem_open
sem_wait
sigalrm
std_thread
tc01_simple_race
tc02_simple_tls
tc03_re_excl
tc04_free_lock
tc05_simple_race
tc06_two_races
tc07_hbl1
tc08_hbl2
tc09_bad_unlock
tc10_rec_lock
tc11_XCHG
tc12_rwl_trivial
tc13_laog1
tc15_laog_lockdel
tc16_byterace
tc17_sembar
tc18_semabuse
tc19_shadowmem
tc20_verifywrap
tc21_pthonce
tc22_exit_w_lock
tc23_bogus_condwait
tc24_nonzero_sem
threaded-fork
thread_name
trylock
tsan_unittest
unit_bitmap
unit_vc
vg_regtest.tmp*
|
|
From: <sv...@va...> - 2012-12-27 17:19:22
|
florian 2012-12-27 17:19:12 +0000 (Thu, 27 Dec 2012)
New Revision: 2620
Log:
Remove Makefile-icc which has been broken for a long time.
Removed files:
trunk/Makefile-icc
Deleted: trunk/Makefile-icc (+0 -261)
===================================================================
--- trunk/Makefile-icc 2012-12-27 00:59:43 +00:00 (rev 2619)
+++ trunk/Makefile-icc 2012-12-27 17:19:12 +00:00 (rev 2620)
@@ -1,261 +0,0 @@
-
-PUB_HEADERS = pub/libvex_basictypes.h \
- pub/libvex_ir.h \
- pub/libvex.h \
- pub/libvex_trc_values.h \
- pub/libvex_emwarn.h \
- pub/libvex_guest_x86.h \
- pub/libvex_guest_amd64.h \
- pub/libvex_guest_arm.h \
- pub/libvex_guest_ppc32.h \
- pub/libvex_guest_ppc64.h \
- pub/libvex_guest_mips.h \
- pub/libvex_guest_offsets.h
-
-PRIV_HEADERS = priv/host-x86/hdefs.h \
- priv/host-amd64/hdefs.h \
- priv/host-arm/hdefs.h \
- priv/host-ppc/hdefs.h \
- priv/host-mips/hdefs.h \
- priv/host-generic/h_generic_regs.h \
- priv/host-generic/h_generic_simd64.h \
- priv/main/vex_globals.h \
- priv/main/vex_util.h \
- priv/guest-generic/g_generic_x87.h \
- priv/guest-generic/bb_to_IR.h \
- priv/guest-x86/gdefs.h \
- priv/guest-amd64/gdefs.h \
- priv/guest-arm/gdefs.h \
- priv/guest-ppc/gdefs.h \
- priv/guest-mips/gdefs.h \
- priv/ir/irmatch.h \
- priv/ir/iropt.h
-
-LIB_OBJS = priv/ir/irdefs.o \
- priv/ir/irmatch.o \
- priv/ir/iropt.o \
- priv/main/vex_main.o \
- priv/main/vex_globals.o \
- priv/main/vex_util.o \
- priv/host-x86/hdefs.o \
- priv/host-amd64/hdefs.o \
- priv/host-arm/hdefs.o \
- priv/host-ppc/hdefs.o \
- priv/host-x86/isel.o \
- priv/host-amd64/isel.o \
- priv/host-arm/isel.o \
- priv/host-ppc/isel.o \
- priv/host-mips/isel.o \
- priv/host-generic/h_generic_regs.o \
- priv/host-generic/h_generic_simd64.o \
- priv/host-generic/reg_alloc2.o \
- priv/guest-generic/g_generic_x87.o \
- priv/guest-generic/bb_to_IR.o \
- priv/guest-x86/ghelpers.o \
- priv/guest-amd64/ghelpers.o \
- priv/guest-arm/ghelpers.o \
- priv/guest-ppc/ghelpers.o \
- priv/guest-mips/ghelpers.o \
- priv/guest-x86/toIR.o \
- priv/guest-amd64/toIR.o \
- priv/guest-arm/toIR.o \
- priv/guest-ppc/toIR.o \
- priv/guest-mips/toIR.o
-
-PUB_INCLUDES = -Ipub
-
-# Do not add any priv/host-ARCH or priv/guest-ARCH directories to this
-# list, as they contain duplicate file names (each host has a hdefs.h,
-# for example).
-PRIV_INCLUDES = -Ipriv
-
-
-#CC = gcc
-#CCFLAGS = -g -O -Wall -Wmissing-prototypes -Wshadow -Winline \
-# -Wpointer-arith -Wbad-function-cast -Wcast-qual \
-# -Wcast-align -Wmissing-declarations \
-# $(EXTRA_CFLAGS)
-
-CC = icc
-CCFLAGS = -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
-# 869: parameter "..." was never referenced
-# 111: statement is unreachable
-# 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
-
-all: vex
-
-scratch: clean version all
-
-vex: libvex.a test_main.o
- $(CC) $(CCFLAGS) -o vex test_main.o libvex.a
-
-libvex.a: $(LIB_OBJS)
- rm -f libvex.a
- ar clq libvex.a $(LIB_OBJS)
-
-clean:
- rm -f $(LIB_OBJS) libvex.a vex test_main.o \
- priv/main/vex_svnversion.h \
- pub/libvex_guest_offsets.h
-
-version:
- rm -f priv/main/vex_svnversion.h
- echo -n "\"" > priv/main/vex_svnversion.h
- svnversion -n . >> priv/main/vex_svnversion.h
- echo "\"" >> priv/main/vex_svnversion.h
-
-minidist: version
- rm -f vex--minidist-2005MMDD.tar
- tar cf vex--minidist-2005MMDD.tar $(PUB_HEADERS) $(PRIV_HEADERS) \
- priv/main/vex_svnversion.h \
- test_main.c test_main.h \
- Makefile \
- `echo $(LIB_OBJS) | sed "s/\.o/\.c/g"`
- @echo
- @echo minidist done, size and svnversion follow:
- @ls -l vex--minidist-2005MMDD.tar
- @cat priv/main/vex_svnversion.h
- @echo
-
-pub/libvex_guest_offsets.h:
- gcc -Wall -g -o auxprogs/genoffsets auxprogs/genoffsets.c
- ./auxprogs/genoffsets > pub/libvex_guest_offsets.h
-
-
-ALL_HEADERS = $(PUB_HEADERS) $(PRIV_HEADERS)
-ALL_INCLUDES = $(PUB_INCLUDES) $(PRIV_INCLUDES)
-
-test_main.o: $(PUB_HEADERS) test_main.c test_main.h
- $(CC) $(CCFLAGS) $(PUB_INCLUDES) -o test_main.o \
- -c test_main.c
-
-priv/ir/irdefs.o: $(ALL_HEADERS) priv/ir/irdefs.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/irdefs.o \
- -c priv/ir/irdefs.c
-
-priv/ir/irmatch.o: $(ALL_HEADERS) priv/ir/irmatch.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/irmatch.o \
- -c priv/ir/irmatch.c
-
-priv/ir/iropt.o: $(ALL_HEADERS) priv/ir/iropt.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/iropt.o \
- -c priv/ir/iropt.c
-
-priv/main/vex_main.o: $(ALL_HEADERS) priv/main/vex_main.c \
- priv/main/vex_svnversion.h
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_main.o \
- -c priv/main/vex_main.c
-
-priv/main/vex_globals.o: $(ALL_HEADERS) priv/main/vex_globals.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_globals.o \
- -c priv/main/vex_globals.c
-
-priv/main/vex_util.o: $(ALL_HEADERS) priv/main/vex_util.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_util.o \
- -c priv/main/vex_util.c
-
-priv/host-x86/hdefs.o: $(ALL_HEADERS) priv/host-x86/hdefs.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-x86/hdefs.o \
- -c priv/host-x86/hdefs.c
-
-priv/host-amd64/hdefs.o: $(ALL_HEADERS) priv/host-amd64/hdefs.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-amd64/hdefs.o \
- -c priv/host-amd64/hdefs.c
-
-priv/host-arm/hdefs.o: $(ALL_HEADERS) priv/host-arm/hdefs.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-arm/hdefs.o \
- -c priv/host-arm/hdefs.c
-
-priv/host-ppc/hdefs.o: $(ALL_HEADERS) priv/host-ppc/hdefs.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-ppc/hdefs.o \
- -c priv/host-ppc/hdefs.c
-
-priv/host-mips/hdefs.o: $(ALL_HEADERS) priv/host-mips/hdefs.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-mips/hdefs.o \
- -c priv/host-mips/hdefs.c
-
-priv/host-x86/isel.o: $(ALL_HEADERS) priv/host-x86/isel.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-x86/isel.o \
- -c priv/host-x86/isel.c
-
-priv/host-amd64/isel.o: $(ALL_HEADERS) priv/host-amd64/isel.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-amd64/isel.o \
- -c priv/host-amd64/isel.c
-
-priv/host-arm/isel.o: $(ALL_HEADERS) priv/host-arm/isel.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-arm/isel.o \
- -c priv/host-arm/isel.c
-
-priv/host-ppc/isel.o: $(ALL_HEADERS) priv/host-ppc/isel.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-ppc/isel.o \
- -c priv/host-ppc/isel.c
-
-priv/host-mips/isel.o: $(ALL_HEADERS) priv/host-mips/isel.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-mips/isel.o \
- -c priv/host-mips/isel.c
-
-priv/host-generic/h_generic_regs.o: $(ALL_HEADERS) priv/host-generic/h_generic_regs.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/h_generic_regs.o \
- -c priv/host-generic/h_generic_regs.c
-
-priv/host-generic/h_generic_simd64.o: $(ALL_HEADERS) priv/host-generic/h_generic_simd64.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/h_generic_simd64.o \
- -c priv/host-generic/h_generic_simd64.c
-
-priv/host-generic/reg_alloc2.o: $(ALL_HEADERS) priv/host-generic/reg_alloc2.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/reg_alloc2.o \
- -c priv/host-generic/reg_alloc2.c
-
-priv/guest-x86/toIR.o: $(ALL_HEADERS) priv/guest-x86/toIR.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-x86/toIR.o \
- -c priv/guest-x86/toIR.c
-
-priv/guest-generic/g_generic_x87.o: $(ALL_HEADERS) priv/guest-generic/g_generic_x87.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-generic/g_generic_x87.o \
- -c priv/guest-generic/g_generic_x87.c
-
-priv/guest-generic/bb_to_IR.o: $(ALL_HEADERS) priv/guest-generic/bb_to_IR.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-generic/bb_to_IR.o \
- -c priv/guest-generic/bb_to_IR.c
-
-priv/guest-x86/ghelpers.o: $(ALL_HEADERS) priv/guest-x86/ghelpers.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-x86/ghelpers.o \
- -c priv/guest-x86/ghelpers.c
-
-priv/guest-amd64/ghelpers.o: $(ALL_HEADERS) priv/guest-amd64/ghelpers.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-amd64/ghelpers.o \
- -c priv/guest-amd64/ghelpers.c
-
-priv/guest-amd64/toIR.o: $(ALL_HEADERS) priv/guest-amd64/toIR.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-amd64/toIR.o \
- -c priv/guest-amd64/toIR.c
-
-priv/guest-arm/ghelpers.o: $(ALL_HEADERS) priv/guest-arm/ghelpers.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-arm/ghelpers.o \
- -c priv/guest-arm/ghelpers.c
-
-priv/guest-arm/toIR.o: $(ALL_HEADERS) priv/guest-arm/toIR.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-arm/toIR.o \
- -c priv/guest-arm/toIR.c
-
-priv/guest-ppc/ghelpers.o: $(ALL_HEADERS) priv/guest-ppc/ghelpers.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-ppc/ghelpers.o \
- -c priv/guest-ppc/ghelpers.c
-
-priv/guest-ppc/toIR.o: $(ALL_HEADERS) priv/guest-ppc/toIR.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-ppc/toIR.o \
- -c priv/guest-ppc/toIR.c
-
-priv/guest-mips/ghelpers.o: $(ALL_HEADERS) priv/guest-mips/ghelpers.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-mips/ghelpers.o \
- -c priv/guest-mips/ghelpers.c
-
-priv/guest-mips/toIR.o: $(ALL_HEADERS) priv/guest-mips/toIR.c
- $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-mips/toIR.o \
- -c priv/guest-mips/toIR.c
|
|
From: <sv...@va...> - 2012-12-27 13:37:47
|
sewardj 2012-12-27 13:37:36 +0000 (Thu, 27 Dec 2012)
New Revision: 13207
Log:
Teach Helgrind about IRLoadG and IRStoreG.
Modified files:
branches/COMEM/helgrind/hg_main.c
Modified: branches/COMEM/helgrind/hg_main.c (+71 -14)
===================================================================
--- branches/COMEM/helgrind/hg_main.c 2012-12-27 12:02:15 +00:00 (rev 13206)
+++ branches/COMEM/helgrind/hg_main.c 2012-12-27 13:37:36 +00:00 (rev 13207)
@@ -4126,18 +4126,40 @@
/*--- Instrumentation ---*/
/*--------------------------------------------------------------*/
+#define unop(_op, _arg1) IRExpr_Unop((_op),(_arg1))
#define binop(_op, _arg1, _arg2) IRExpr_Binop((_op),(_arg1),(_arg2))
#define mkexpr(_tmp) IRExpr_RdTmp((_tmp))
#define mkU32(_n) IRExpr_Const(IRConst_U32(_n))
#define mkU64(_n) IRExpr_Const(IRConst_U64(_n))
#define assign(_t, _e) IRStmt_WrTmp((_t), (_e))
+/* This takes and returns atoms, of course. Not full IRExprs. */
+static IRExpr* mk_And1 ( IRSB* sbOut, IRExpr* arg1, IRExpr* arg2 )
+{
+ tl_assert(arg1 && arg2);
+ tl_assert(isIRAtom(arg1));
+ tl_assert(isIRAtom(arg2));
+ /* Generate 32to1(And32(1Uto32(arg1), 1Uto32(arg2))). Appalling
+ code, I know. */
+ IRTemp wide1 = newIRTemp(sbOut->tyenv, Ity_I32);
+ IRTemp wide2 = newIRTemp(sbOut->tyenv, Ity_I32);
+ IRTemp anded = newIRTemp(sbOut->tyenv, Ity_I32);
+ IRTemp res = newIRTemp(sbOut->tyenv, Ity_I1);
+ addStmtToIRSB(sbOut, assign(wide1, unop(Iop_1Uto32, arg1)));
+ addStmtToIRSB(sbOut, assign(wide2, unop(Iop_1Uto32, arg2)));
+ addStmtToIRSB(sbOut, assign(anded, binop(Iop_And32, mkexpr(wide1),
+ mkexpr(wide2))));
+ addStmtToIRSB(sbOut, assign(res, unop(Iop_32to1, mkexpr(anded))));
+ return mkexpr(res);
+}
+
static void instrument_mem_access ( IRSB* sbOut,
IRExpr* addr,
Int szB,
Bool isStore,
Int hWordTy_szB,
- Int goff_sp )
+ Int goff_sp,
+ IRExpr* guard ) /* NULL => True */
{
IRType tyAddr = Ity_INVALID;
const HChar* hName = NULL;
@@ -4273,17 +4295,25 @@
: binop(Iop_Add64, mkexpr(addr_minus_sp), mkU64(rz_szB)))
);
- IRTemp guard = newIRTemp(sbOut->tyenv, Ity_I1);
+ /* guardA == "guard on the address" */
+ IRTemp guardA = newIRTemp(sbOut->tyenv, Ity_I1);
addStmtToIRSB(
sbOut,
- assign(guard,
+ assign(guardA,
tyAddr == Ity_I32
? binop(Iop_CmpLT32U, mkU32(THRESH), mkexpr(diff))
: binop(Iop_CmpLT64U, mkU64(THRESH), mkexpr(diff)))
);
- di->guard = mkexpr(guard);
+ di->guard = mkexpr(guardA);
}
+ /* If there's a guard on the access itself (as supplied by the
+ caller of this routine), we need to AND that in to any guard we
+ might already have. */
+ if (guard) {
+ di->guard = mk_And1(sbOut, di->guard, guard);
+ }
+
/* Add the helper. */
addStmtToIRSB( sbOut, IRStmt_Dirty(di) );
}
@@ -4428,7 +4458,8 @@
(isDCAS ? 2 : 1)
* sizeofIRType(typeOfIRExpr(bbIn->tyenv, cas->dataLo)),
False/*!isStore*/,
- sizeofIRType(hWordTy), goff_sp
+ sizeofIRType(hWordTy), goff_sp,
+ NULL/*no-guard*/
);
}
break;
@@ -4448,7 +4479,8 @@
st->Ist.LLSC.addr,
sizeofIRType(dataTy),
False/*!isStore*/,
- sizeofIRType(hWordTy), goff_sp
+ sizeofIRType(hWordTy), goff_sp,
+ NULL/*no-guard*/
);
}
} else {
@@ -4459,22 +4491,46 @@
}
case Ist_Store:
- /* It seems we pretend that store-conditionals don't
- exist, viz, just ignore them ... */
if (!inLDSO) {
instrument_mem_access(
bbOut,
st->Ist.Store.addr,
sizeofIRType(typeOfIRExpr(bbIn->tyenv, st->Ist.Store.data)),
True/*isStore*/,
- sizeofIRType(hWordTy), goff_sp
+ sizeofIRType(hWordTy), goff_sp,
+ NULL/*no-guard*/
);
}
break;
+ case Ist_StoreG: {
+ IRStoreG* sg = st->Ist.StoreG.details;
+ IRExpr* data = sg->data;
+ IRExpr* addr = sg->addr;
+ IRType type = typeOfIRExpr(bbIn->tyenv, data);
+ tl_assert(type != Ity_INVALID);
+ instrument_mem_access( bbOut, addr, sizeofIRType(type),
+ True/*isStore*/,
+ sizeofIRType(hWordTy),
+ goff_sp, sg->guard );
+ break;
+ }
+
+ case Ist_LoadG: {
+ IRLoadG* lg = st->Ist.LoadG.details;
+ IRType type = Ity_INVALID; /* loaded type */
+ IRType typeWide = Ity_INVALID; /* after implicit widening */
+ IRExpr* addr = lg->addr;
+ typeOfIRLoadGOp(lg->cvt, &typeWide, &type);
+ tl_assert(type != Ity_INVALID);
+ instrument_mem_access( bbOut, addr, sizeofIRType(type),
+ False/*!isStore*/,
+ sizeofIRType(hWordTy),
+ goff_sp, lg->guard );
+ break;
+ }
+
case Ist_WrTmp: {
- /* ... whereas here we don't care whether a load is a
- vanilla one or a load-linked. */
IRExpr* data = st->Ist.WrTmp.data;
if (data->tag == Iex_Load) {
if (!inLDSO) {
@@ -4483,7 +4539,8 @@
data->Iex.Load.addr,
sizeofIRType(data->Iex.Load.ty),
False/*!isStore*/,
- sizeofIRType(hWordTy), goff_sp
+ sizeofIRType(hWordTy), goff_sp,
+ NULL/*no-guard*/
);
}
}
@@ -4503,7 +4560,7 @@
if (!inLDSO) {
instrument_mem_access(
bbOut, d->mAddr, dataSize, False/*!isStore*/,
- sizeofIRType(hWordTy), goff_sp
+ sizeofIRType(hWordTy), goff_sp, NULL/*no-guard*/
);
}
}
@@ -4511,7 +4568,7 @@
if (!inLDSO) {
instrument_mem_access(
bbOut, d->mAddr, dataSize, True/*isStore*/,
- sizeofIRType(hWordTy), goff_sp
+ sizeofIRType(hWordTy), goff_sp, NULL/*no-guard*/
);
}
}
|
|
From: Julian S. <js...@ac...> - 2012-12-27 12:49:22
|
On Monday, December 24, 2012, Florian Krohm wrote: > And we don't ship it in the release tarball. > OK to remove? Fine by me. J |
|
From: Julian S. <js...@ac...> - 2012-12-27 12:12:24
|
On Friday, December 21, 2012, Josef Weidendorfer wrote: > On x86, for sure they are rare. On x86 they do not exist at all for any instruction set < AVX, IIUC, since AVX has conditional scatter/gather loads. Did you mean something else? > I am not so sure for ARM. From my experimentation so far, they do exist on ARM (obviously) but are still quite rare. One reason they might be rare is that flattening an if-then-else into conditionalised straight-line code on ARM is only going to be a performance win if the then- and else- branches are very small (or empty). Also, on Thumb, the conditionalisation scheme -- which is different from ARM -- makes it impossible to write straight-line if-then-else for more than 4 instructions total. > The changes for Callgrind should be exactly the same. I think so, but it would be good if you could look at what I just committed for Callgrind (r13206). It does not produce the same numbers for insn reads or data accesses for "perf/bz2 x" compiled -g -O, which worries me. But IIRC you fixed some bug on the trunk relating to cachegrind/callgrind inconsistencies, and maybe you fixed it after I made the COMEM branch from the trunk. So maybe that is the reason for the differences. J |
|
From: <sv...@va...> - 2012-12-27 12:02:28
|
sewardj 2012-12-27 12:02:15 +0000 (Thu, 27 Dec 2012)
New Revision: 13206
Log:
Teach Callgrind about IRLoadG and IRStoreG.
Modified files:
branches/COMEM/callgrind/main.c
branches/COMEM/callgrind/sim.c
Modified: branches/COMEM/callgrind/sim.c (+4 -0)
===================================================================
--- branches/COMEM/callgrind/sim.c 2012-12-27 03:00:49 +00:00 (rev 13205)
+++ branches/COMEM/callgrind/sim.c 2012-12-27 12:02:15 +00:00 (rev 13206)
@@ -1189,6 +1189,9 @@
}
+/* Note that addEvent_D_guarded assumes that log_0I1Dr and log_0I1Dw
+ have exactly the same prototype. If you change them, you must
+ change addEvent_D_guarded too. */
VG_REGPARM(3)
static void log_0I1Dr(InstrInfo* ii, Addr data_addr, Word data_size)
{
@@ -1248,6 +1251,7 @@
}
}
+/* See comment on log_0I1Dr. */
VG_REGPARM(3)
static void log_0I1Dw(InstrInfo* ii, Addr data_addr, Word data_size)
{
Modified: branches/COMEM/callgrind/main.c (+75 -6)
===================================================================
--- branches/COMEM/callgrind/main.c 2012-12-27 03:00:49 +00:00 (rev 13205)
+++ branches/COMEM/callgrind/main.c 2012-12-27 12:02:15 +00:00 (rev 13206)
@@ -669,6 +669,50 @@
}
static
+void addEvent_D_guarded ( ClgState* clgs, InstrInfo* inode,
+ Int datasize, IRAtom* ea, IRAtom* guard,
+ Bool isWrite )
+{
+ tl_assert(isIRAtom(ea));
+ tl_assert(guard);
+ tl_assert(isIRAtom(guard));
+ tl_assert(datasize >= 1);
+ if (!CLG_(clo).simulate_cache) return;
+ tl_assert(datasize <= CLG_(min_line_size));
+
+ /* Adding guarded memory actions and merging them with the existing
+ queue is too complex. Simply flush the queue and add this
+ action immediately. Since guarded loads and stores are pretty
+ rare, this is not thought likely to cause any noticeable
+ performance loss as a result of the loss of event-merging
+ opportunities. */
+ tl_assert(clgs->events_used >= 0);
+ flushEvents(clgs);
+ tl_assert(clgs->events_used == 0);
+ /* Same as case Ev_Dw / case Ev_Dr in flushEvents, except with guard */
+ IRExpr* i_node_expr;
+ const HChar* helperName;
+ void* helperAddr;
+ IRExpr** argv;
+ Int regparms;
+ IRDirty* di;
+ i_node_expr = mkIRExpr_HWord( (HWord)inode );
+ helperName = isWrite ? CLG_(cachesim).log_0I1Dw_name
+ : CLG_(cachesim).log_0I1Dr_name;
+ helperAddr = isWrite ? CLG_(cachesim).log_0I1Dw
+ : CLG_(cachesim).log_0I1Dr;
+ argv = mkIRExprVec_3( i_node_expr,
+ ea, mkIRExpr_HWord( datasize ) );
+ regparms = 3;
+ di = unsafeIRDirty_0_N(
+ regparms,
+ helperName, VG_(fnptr_to_fnentry)( helperAddr ),
+ argv );
+ di->guard = guard;
+ addStmtToIRSB( clgs->sbOut, IRStmt_Dirty(di) );
+}
+
+static
void addEvent_Bc ( ClgState* clgs, InstrInfo* inode, IRAtom* guard )
{
Event* evt;
@@ -912,14 +956,14 @@
VexArchInfo* archinfo_host,
IRType gWordTy, IRType hWordTy )
{
- Int i;
- IRStmt* st;
- Addr origAddr;
+ Int i;
+ IRStmt* st;
+ Addr origAddr;
InstrInfo* curr_inode = NULL;
- ClgState clgs;
- UInt cJumps = 0;
+ ClgState clgs;
+ UInt cJumps = 0;
+ IRTypeEnv* tyenv = sbIn->tyenv;
-
if (gWordTy != hWordTy) {
/* We don't currently support this case. */
VG_(tool_panic)("host/guest word size mismatch");
@@ -1022,6 +1066,31 @@
break;
}
+ case Ist_StoreG: {
+ IRStoreG* sg = st->Ist.StoreG.details;
+ IRExpr* data = sg->data;
+ IRExpr* addr = sg->addr;
+ IRType type = typeOfIRExpr(tyenv, data);
+ tl_assert(type != Ity_INVALID);
+ addEvent_D_guarded( &clgs, curr_inode,
+ sizeofIRType(type), addr, sg->guard,
+ True/*isWrite*/ );
+ break;
+ }
+
+ case Ist_LoadG: {
+ IRLoadG* lg = st->Ist.LoadG.details;
+ IRType type = Ity_INVALID; /* loaded type */
+ IRType typeWide = Ity_INVALID; /* after implicit widening */
+ IRExpr* addr = lg->addr;
+ typeOfIRLoadGOp(lg->cvt, &typeWide, &type);
+ tl_assert(type != Ity_INVALID);
+ addEvent_D_guarded( &clgs, curr_inode,
+ sizeofIRType(type), addr, lg->guard,
+ False/*!isWrite*/ );
+ break;
+ }
+
case Ist_Dirty: {
Int dataSize;
IRDirty* d = st->Ist.Dirty.details;
|
|
From: Philippe W. <phi...@sk...> - 2012-12-27 04:48:20
|
valgrind revision: 13205 VEX revision: 2619 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716 C library: GNU C Library development release version 2.14.90 uname -mrs: Linux 3.3.1-3.fc16.ppc64 ppc64 Vendor version: Fedora release 16 (Verne) Nightly build on gcc110 ( Fedora release 16 (Verne), ppc64 ) Started at 2012-12-26 20:00:14 PST Ended at 2012-12-26 20:46:33 PST 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 == 543 tests, 10 stderr failures, 5 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) gdbserver_tests/mcmain_pic (stderr) gdbserver_tests/mcmain_pic (stdoutB) gdbserver_tests/mcmain_pic (stderrB) memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) none/tests/ppc32/test_dfp2 (stdout) none/tests/ppc32/test_dfp2 (stderr) none/tests/ppc64/test_dfp2 (stdout) none/tests/ppc64/test_dfp2 (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) |
|
From: Rich C. <rc...@wi...> - 2012-12-27 04:03:44
|
valgrind revision: 13205
VEX revision: 2619
C compiler: gcc (SUSE Linux) 4.7.1 20120723 [gcc-4_7-branch revision 189773]
Assembler: GNU assembler (GNU Binutils; openSUSE 12.2) 2.22
C library: GNU C Library stable release version 2.15 (20120628)
uname -mrs: Linux 3.4.11-2.16-desktop x86_64
Vendor version: Welcome to openSUSE 12.2 "Mantis" - Kernel %r (%t).
Nightly build on ultra ( gcc 4.5.1 Linux 3.4.11-2.16-desktop x86_64 )
Started at 2012-12-26 21:30:01 CST
Ended at 2012-12-26 22:03:33 CST
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
== 635 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mcinfcallRU (stderr)
gdbserver_tests/mcinfcallWSRU (stderr)
memcheck/tests/origin5-bz2 (stderr)
=================================================
./valgrind-new/gdbserver_tests/mcinfcallRU.stderr.diff
=================================================
--- mcinfcallRU.stderr.exp 2012-12-26 21:49:23.113307998 -0600
+++ mcinfcallRU.stderr.out 2012-12-26 21:54:35.062687540 -0600
@@ -1,4 +1,12 @@
loops/sleep_ms/burn/threads_spec: 1 0 2000000000 ------B-
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... inferior call pushed from gdb in mcinfcallRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-new/gdbserver_tests/mcinfcallWSRU.stderr.diff
=================================================
--- mcinfcallWSRU.stderr.exp 2012-12-26 21:49:23.115307942 -0600
+++ mcinfcallWSRU.stderr.out 2012-12-26 21:54:37.540619084 -0600
@@ -3,5 +3,13 @@
London ready to sleep and/or burn
Petaouchnok ready to sleep and/or burn
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... thread 1 inferior call pushed from gdb in mcinfcallWSRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2012-12-26 21:49:44.317721880 -0600
+++ origin5-bz2.stderr.out 2012-12-26 21:56:27.542577948 -0600
@@ -75,17 +75,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -131,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2012-12-26 21:49:42.975758980 -0600
+++ origin5-bz2.stderr.out 2012-12-26 21:56:27.542577948 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2012-12-26 21:49:26.815205808 -0600
+++ origin5-bz2.stderr.out 2012-12-26 21:56:27.542577948 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2012-12-26 21:49:34.117003399 -0600
+++ origin5-bz2.stderr.out 2012-12-26 21:56:27.542577948 -0600
@@ -12,7 +12,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -21,7 +21,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -30,7 +30,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -41,7 +41,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -52,7 +52,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -63,7 +63,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -74,7 +74,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -85,7 +85,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -96,7 +96,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -107,7 +107,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2012-12-26 21:49:40.373830874 -0600
+++ origin5-bz2.stderr.out 2012-12-26 21:56:27.542577948 -0600
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -10,7 +10,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -19,7 +19,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -28,7 +28,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -39,7 +39,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -50,7 +50,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -61,7 +61,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -72,7 +72,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -83,7 +83,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -94,7 +94,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -105,7 +105,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
=================================================
./valgrind-old/gdbserver_tests/mcinfcallRU.stderr.diff
=================================================
--- mcinfcallRU.stderr.exp 2012-12-26 21:32:23.807509913 -0600
+++ mcinfcallRU.stderr.out 2012-12-26 21:39:39.819439541 -0600
@@ -1,4 +1,12 @@
loops/sleep_ms/burn/threads_spec: 1 0 2000000000 ------B-
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... inferior call pushed from gdb in mcinfcallRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-old/gdbserver_tests/mcinfcallWSRU.stderr.diff
=================================================
--- mcinfcallWSRU.stderr.exp 2012-12-26 21:32:23.810509844 -0600
+++ mcinfcallWSRU.stderr.out 2012-12-26 21:39:42.343369701 -0600
@@ -3,5 +3,13 @@
London ready to sleep and/or burn
Petaouchnok ready to sleep and/or burn
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... thread 1 inferior call pushed from gdb in mcinfcallWSRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2012-12-26 21:32:58.834540130 -0600
+++ origin5-bz2.stderr.out 2012-12-26 21:41:32.747315037 -0600
@@ -75,17 +75,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -131,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2012-12-26 21:32:48.065838073 -0600
+++ origin5-bz2.stderr.out 2012-12-26 21:41:32.747315037 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2012-12-26 21:32:30.147334442 -0600
+++ origin5-bz2.stderr.out 2012-12-26 21:41:32.747315037 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2012-12-26 21:32:39.914063839 -0600
+++ origin5-bz2.stderr.out 2012-12-26 21:41:32.747315037 -0600
@@ -12,7 +12,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -21,7 +21,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -30,7 +30,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -41,7 +41,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -52,7 +52,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -63,7 +63,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -74,7 +74,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -85,7 +85,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -96,7 +96,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -107,7 +107,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2012-12-26 21:32:46.907870140 -0600
+++ origin5-bz2.stderr.out 2012-12-26 21:41:32.747315037 -0600
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -10,7 +10,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -19,7 +19,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -28,7 +28,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -39,7 +39,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -50,7 +50,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -61,7 +61,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -72,7 +72,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -83,7 +83,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -94,7 +94,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -105,7 +105,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
|
|
From: Christian B. <bor...@de...> - 2012-12-27 03:13:40
|
valgrind revision: 13204 VEX revision: 2619 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.21.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.42-0.7-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP2 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP1 gcc 4.3.4 on z196 (s390x) ) Started at 2012-12-27 03:45:02 CET Ended at 2012-12-27 04:13:26 CET Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 619 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Christian B. <bor...@de...> - 2012-12-27 03:11:38
|
valgrind revision: 13204 VEX revision: 2619 C compiler: gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9bb4) Assembler: GNU assembler version 2.21.51.0.6-6bb6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.6.8-57.x.20121204-s390xperformance s390x Vendor version: unknown Nightly build on fedora390 ( Fedora 15 with devel libc/toolchain on z196 (s390x) ) Started at 2012-12-27 03:45:01 CET Ended at 2012-12-27 04:11:45 CET 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 == 620 tests, 3 stderr failures, 1 stdout failure, 6 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcbreak (stderrB) gdbserver_tests/mcclean_after_fork (stderrB) gdbserver_tests/mcleak (stderrB) gdbserver_tests/mcmain_pic (stderrB) gdbserver_tests/mcvabits (stderrB) gdbserver_tests/mssnapshot (stderrB) memcheck/tests/linux/timerfd-syscall (stderr) none/tests/s390x/test_clone (stdout) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (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 == 620 tests, 3 stderr failures, 0 stdout failures, 6 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcbreak (stderrB) gdbserver_tests/mcclean_after_fork (stderrB) gdbserver_tests/mcleak (stderrB) gdbserver_tests/mcmain_pic (stderrB) gdbserver_tests/mcvabits (stderrB) gdbserver_tests/mssnapshot (stderrB) memcheck/tests/linux/timerfd-syscall (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Thu Dec 27 03:58:20 2012 --- new.short Thu Dec 27 04:11:45 2012 *************** *** 8,10 **** ! == 620 tests, 3 stderr failures, 0 stdout failures, 6 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcbreak (stderrB) --- 8,10 ---- ! == 620 tests, 3 stderr failures, 1 stdout failure, 6 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcbreak (stderrB) *************** *** 16,17 **** --- 16,18 ---- memcheck/tests/linux/timerfd-syscall (stderr) + none/tests/s390x/test_clone (stdout) helgrind/tests/tc18_semabuse (stderr) |
|
From: <sv...@va...> - 2012-12-27 03:00:58
|
florian 2012-12-27 03:00:49 +0000 (Thu, 27 Dec 2012)
New Revision: 13205
Log:
vbit-tester: In test_ternary_op return number of tests executed.
I don't recall gcc complaining about this. But clang did.
Modified files:
trunk/memcheck/tests/vbit-test/ternary.c
Modified: trunk/memcheck/tests/vbit-test/ternary.c (+1 -0)
===================================================================
--- trunk/memcheck/tests/vbit-test/ternary.c 2012-12-26 21:12:07 +00:00 (rev 13204)
+++ trunk/memcheck/tests/vbit-test/ternary.c 2012-12-27 03:00:49 +00:00 (rev 13205)
@@ -62,4 +62,5 @@
tests_done++;
}
}
+ return tests_done;
}
|
|
From: <sv...@va...> - 2012-12-27 00:59:52
|
florian 2012-12-27 00:59:43 +0000 (Thu, 27 Dec 2012)
New Revision: 2619
Log:
s390: Do not waste a register when assigning a constant to a memory
location. If available, use MVHI and friends. If those are not available,
load the constant value into register r0 and store that. r0 is not visible
to register allocation and therefore using it does not increase register
pressure.
Remove S390_INSN_MZERO and replace it with S390_INSN_MIMM. Assigning zero
is just a special case..
Saves between 0.9% and 2.4% of insns as measured with the perf regression
bucket.
Modified files:
trunk/priv/host_s390_defs.c
trunk/priv/host_s390_defs.h
trunk/priv/host_s390_isel.c
Modified: trunk/priv/host_s390_isel.c (+29 -19)
===================================================================
--- trunk/priv/host_s390_isel.c 2012-12-27 00:44:30 +00:00 (rev 2618)
+++ trunk/priv/host_s390_isel.c 2012-12-27 00:59:43 +00:00 (rev 2619)
@@ -426,6 +426,24 @@
}
+/* Return the value of CON as a sign-exteded ULong value */
+static ULong
+get_const_value_as_ulong(const IRConst *con)
+{
+ Long value;
+
+ switch (con->tag) {
+ case Ico_U1: value = con->Ico.U1; return (ULong) ((value << 63) >> 63);
+ case Ico_U8: value = con->Ico.U8; return (ULong) ((value << 56) >> 56);
+ case Ico_U16: value = con->Ico.U16; return (ULong) ((value << 48) >> 48);
+ case Ico_U32: value = con->Ico.U32; return (ULong) ((value << 32) >> 32);
+ case Ico_U64: return con->Ico.U64;
+ default:
+ vpanic("get_const_value_as_ulong");
+ }
+}
+
+
/* Call a helper (clean or dirty)
Arguments must satisfy the following conditions:
@@ -2924,8 +2942,10 @@
case Ity_I64:
/* fixs390: We could check for INSN_MADD here. */
if (am->tag == S390_AMODE_B12 &&
- s390_expr_is_const_zero(stmt->Ist.Store.data)) {
- addInstr(env, s390_insn_mzero(sizeofIRType(tyd), am));
+ stmt->Ist.Store.data->tag == Iex_Const) {
+ ULong value =
+ get_const_value_as_ulong(stmt->Ist.Store.data->Iex.Const.con);
+ addInstr(env, s390_insn_mimm(sizeofIRType(tyd), am, value));
return;
}
src = s390_isel_int_expr(env, stmt->Ist.Store.data);
@@ -3000,13 +3020,6 @@
return;
}
- /* guest register = 0 */
- if (new_value == 0) {
- am = s390_amode_for_guest_state(offset);
- addInstr(env, s390_insn_mzero(sizeofIRType(tyd), am));
- return;
- }
-
if (old_value_is_valid == False) goto not_special;
/* If the new value is in the neighbourhood of the old value
@@ -3020,22 +3033,17 @@
return;
}
- /* If the high word is the same it is sufficient to load the low word.
- Use R0 as a scratch reg. */
+ /* If the high word is the same it is sufficient to load the low word. */
if ((old_value >> 32) == (new_value >> 32)) {
- HReg r0 = make_gpr(0);
-
am = s390_amode_for_guest_state(offset + 4);
- addInstr(env, s390_insn_load_immediate(4, r0,
- new_value & 0xFFFFFFFF));
- addInstr(env, s390_insn_store(4, am, r0));
+ addInstr(env, s390_insn_mimm(4, am, new_value & 0xFFFFFFFF));
return;
}
/* No special case applies... fall through */
not_special:
- am = s390_amode_for_guest_state(stmt->Ist.Put.offset);
+ am = s390_amode_for_guest_state(offset);
switch (tyd) {
case Ity_I8:
@@ -3043,8 +3051,10 @@
case Ity_I32:
case Ity_I64:
if (am->tag == S390_AMODE_B12 &&
- s390_expr_is_const_zero(stmt->Ist.Put.data)) {
- addInstr(env, s390_insn_mzero(sizeofIRType(tyd), am));
+ stmt->Ist.Put.data->tag == Iex_Const) {
+ ULong value =
+ get_const_value_as_ulong(stmt->Ist.Put.data->Iex.Const.con);
+ addInstr(env, s390_insn_mimm(sizeofIRType(tyd), am, value));
return;
}
src = s390_isel_int_expr(env, stmt->Ist.Put.data);
Modified: trunk/priv/host_s390_defs.h (+4 -3)
===================================================================
--- trunk/priv/host_s390_defs.h 2012-12-27 00:44:30 +00:00 (rev 2618)
+++ trunk/priv/host_s390_defs.h 2012-12-27 00:59:43 +00:00 (rev 2619)
@@ -144,7 +144,7 @@
S390_INSN_DFP_COMPARE,
S390_INSN_DFP_CONVERT,
S390_INSN_MFENCE,
- S390_INSN_MZERO, /* Assign zero to a memory location */
+ S390_INSN_MIMM, /* Assign an immediate constant to a memory location */
S390_INSN_MADD, /* Add a value to a memory location */
S390_INSN_SET_FPC_BFPRM, /* Set the bfp rounding mode in the FPC */
S390_INSN_SET_FPC_DFPRM, /* Set the dfp rounding mode in the FPC */
@@ -463,7 +463,8 @@
/* Miscellaneous */
struct {
s390_amode *dst;
- } mzero;
+ ULong value; /* sign extended */
+ } mimm;
struct {
s390_amode *dst;
UChar delta;
@@ -584,7 +585,7 @@
HReg dst, HReg op_hi, HReg op_lo,
s390_dfp_round_t);
s390_insn *s390_insn_mfence(void);
-s390_insn *s390_insn_mzero(UChar size, s390_amode *dst);
+s390_insn *s390_insn_mimm(UChar size, s390_amode *dst, ULong value);
s390_insn *s390_insn_madd(UChar size, s390_amode *dst, UChar delta,
ULong value);
s390_insn *s390_insn_set_fpc_bfprm(UChar size, HReg mode);
Modified: trunk/priv/host_s390_defs.c (+114 -15)
===================================================================
--- trunk/priv/host_s390_defs.c 2012-12-27 00:44:30 +00:00 (rev 2618)
+++ trunk/priv/host_s390_defs.c 2012-12-27 00:59:43 +00:00 (rev 2619)
@@ -741,8 +741,8 @@
addHRegUse(u, HRmRead, insn->variant.dfp_convert.op_lo); /* operand */
break;
- case S390_INSN_MZERO:
- s390_amode_get_reg_usage(u, insn->variant.mzero.dst);
+ case S390_INSN_MIMM:
+ s390_amode_get_reg_usage(u, insn->variant.mimm.dst);
break;
case S390_INSN_MADD:
@@ -1026,8 +1026,8 @@
lookupHRegRemap(m, insn->variant.dfp_convert.op_lo);
break;
- case S390_INSN_MZERO:
- s390_amode_map_regs(m, insn->variant.mzero.dst);
+ case S390_INSN_MIMM:
+ s390_amode_map_regs(m, insn->variant.mimm.dst);
break;
case S390_INSN_MADD:
@@ -1310,6 +1310,32 @@
static UChar *
+emit_SI(UChar *p, UInt op, UChar i2, UChar b1, UShort d1)
+{
+ ULong the_insn = op;
+
+ the_insn |= ((ULong)i2) << 16;
+ the_insn |= ((ULong)b1) << 12;
+ the_insn |= ((ULong)d1) << 0;
+
+ return emit_4bytes(p, the_insn);
+}
+
+
+static UChar *
+emit_SIL(UChar *p, ULong op, UChar b1, UShort d1, UShort i2)
+{
+ ULong the_insn = op;
+
+ the_insn |= ((ULong)b1) << 28;
+ the_insn |= ((ULong)d1) << 16;
+ the_insn |= ((ULong)i2) << 0;
+
+ return emit_6bytes(p, the_insn);
+}
+
+
+static UChar *
emit_SIY(UChar *p, ULong op, UChar i2, UChar b1, UShort dl1, UChar dh1)
{
ULong the_insn = op;
@@ -2735,6 +2761,46 @@
static UChar *
+s390_emit_MVI(UChar *p, UChar i2, UChar b1, UShort d1)
+{
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
+ s390_disasm(ENC3(MNM, UDXB, INT), "mvi", b1, 0, d1, i2);
+
+ return emit_SI(p, 0x92000000, i2, b1, d1);
+}
+
+
+static UChar *
+s390_emit_MVHHI(UChar *p, UChar b1, UShort d1, UShort i2)
+{
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
+ s390_disasm(ENC3(MNM, UDXB, INT), "mvhhi", b1, 0, d1, i2);
+
+ return emit_SIL(p, 0xe54400000000ULL, b1, d1, i2);
+}
+
+
+static UChar *
+s390_emit_MVHI(UChar *p, UChar b1, UShort d1, UShort i2)
+{
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
+ s390_disasm(ENC3(MNM, UDXB, INT), "mvhi", b1, 0, d1, i2);
+
+ return emit_SIL(p, 0xe54c00000000ULL, b1, d1, i2);
+}
+
+
+static UChar *
+s390_emit_MVGHI(UChar *p, UChar b1, UShort d1, UShort i2)
+{
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
+ s390_disasm(ENC3(MNM, UDXB, INT), "mvghi", b1, 0, d1, i2);
+
+ return emit_SIL(p, 0xe54800000000ULL, b1, d1, i2);
+}
+
+
+static UChar *
s390_emit_OR(UChar *p, UChar r1, UChar r2)
{
if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
@@ -5472,17 +5538,18 @@
s390_insn *
-s390_insn_mzero(UChar size, s390_amode *dst)
+s390_insn_mimm(UChar size, s390_amode *dst, ULong value)
{
s390_insn *insn = LibVEX_Alloc(sizeof(s390_insn));
- /* This insn will be mapped to an XC so we can only allow base register
+ /* This insn will be mapped to insns that require base register
plus 12-bit displacement */
vassert(dst->tag == S390_AMODE_B12);
- insn->tag = S390_INSN_MZERO;
+ insn->tag = S390_INSN_MIMM;
insn->size = size;
- insn->variant.mzero.dst = dst;
+ insn->variant.mimm.dst = dst;
+ insn->variant.mimm.value = value;
return insn;
}
@@ -6074,8 +6141,9 @@
s390_sprintf(buf, "%M", "v-mfence");
return buf; /* avoid printing "size = ..." which is meaningless */
- case S390_INSN_MZERO:
- s390_sprintf(buf, "%M %A", "v-mzero", insn->variant.mzero.dst);
+ case S390_INSN_MIMM:
+ s390_sprintf(buf, "%M %A,%I", "v-mimm", insn->variant.mimm.dst,
+ insn->variant.mimm.value);
break;
case S390_INSN_MADD:
@@ -8305,11 +8373,42 @@
static UChar *
-s390_insn_mzero_emit(UChar *buf, const s390_insn *insn)
+s390_insn_mimm_emit(UChar *buf, const s390_insn *insn)
{
- s390_amode *am = insn->variant.mzero.dst;
+ s390_amode *am = insn->variant.mimm.dst;
+ ULong value = insn->variant.mimm.value;
- return s390_emit_XC(buf, insn->size - 1, am->b, am->d, am->b, am->d);
+ if (value == 0) {
+ return s390_emit_XC(buf, insn->size - 1, am->b, am->d, am->b, am->d);
+ }
+
+ if (insn->size == 1) {
+ return s390_emit_MVI(buf, value & 0xFF, am->b, am->d);
+ }
+
+ if (s390_host_has_gie && ulong_fits_signed_16bit(value)) {
+ value &= 0xFFFF;
+ switch (insn->size) {
+ case 2: return s390_emit_MVHHI(buf, am->b, am->d, value);
+ case 4: return s390_emit_MVHI(buf, am->b, am->d, value);
+ case 8: return s390_emit_MVGHI(buf, am->b, am->d, value);
+ }
+ } else {
+ // Load value to R0, then store.
+ switch (insn->size) {
+ case 2:
+ buf = s390_emit_LHI(buf, R0, value & 0xFFFF);
+ return s390_emit_STH(buf, R0, 0, am->b, am->d);
+ case 4:
+ buf = s390_emit_load_32imm(buf, R0, value);
+ return s390_emit_ST(buf, R0, 0, am->b, am->d);
+ case 8:
+ buf = s390_emit_load_64imm(buf, R0, value);
+ return s390_emit_STG(buf, R0, 0, am->b, DISP20(am->d));
+ }
+ }
+
+ vpanic("s390_insn_mimm_emit");
}
@@ -8912,8 +9011,8 @@
end = s390_insn_mfence_emit(buf, insn);
break;
- case S390_INSN_MZERO:
- end = s390_insn_mzero_emit(buf, insn);
+ case S390_INSN_MIMM:
+ end = s390_insn_mimm_emit(buf, insn);
break;
case S390_INSN_MADD:
|
|
From: <sv...@va...> - 2012-12-27 00:44:40
|
florian 2012-12-27 00:44:30 +0000 (Thu, 27 Dec 2012)
New Revision: 2618
Log:
s390: Remove a forgotten debug print statement.
Modified files:
trunk/priv/s390_disasm.c
Modified: trunk/priv/s390_disasm.c (+0 -1)
===================================================================
--- trunk/priv/s390_disasm.c 2012-12-26 17:47:19 +00:00 (rev 2617)
+++ trunk/priv/s390_disasm.c 2012-12-27 00:44:30 +00:00 (rev 2618)
@@ -42,7 +42,6 @@
static const HChar *
mnemonic(const HChar *mnm)
{
- vex_printf("MNEMONIC = |%s|\n", mnm);
vassert(vex_strlen(mnm) <= S390_MAX_MNEMONIC_LEN);
static HChar buf[S390_MAX_MNEMONIC_LEN + 1];
|
|
From: <sv...@va...> - 2012-12-26 21:12:18
|
florian 2012-12-26 21:12:07 +0000 (Wed, 26 Dec 2012)
New Revision: 13204
Log:
Remove a fixme.
Modified files:
trunk/coregrind/m_machine.c
Modified: trunk/coregrind/m_machine.c (+0 -1)
===================================================================
--- trunk/coregrind/m_machine.c 2012-12-26 17:48:46 +00:00 (rev 13203)
+++ trunk/coregrind/m_machine.c 2012-12-26 21:12:07 +00:00 (rev 13204)
@@ -431,7 +431,6 @@
Int VG_(machine_arm_archlevel) = 4;
#endif
-/* fixs390: anything for s390x here ? */
/* For hwcaps detection on ppc32/64, s390x, and arm we'll need to do SIGILL
testing, so we need a VG_MINIMAL_JMP_BUF. */
|
|
From: <sv...@va...> - 2012-12-26 17:48:53
|
florian 2012-12-26 17:48:46 +0000 (Wed, 26 Dec 2012)
New Revision: 13203
Log:
valgrind side changes to support Iop_CmpExpD64 and Iop_CmpExpD128.
VEX buddy patch is r2617.
Enhance testcase for CEDTR and CEXTR. Adapt vbit tester.
Patch by Maran Pakkirisamy (ma...@li...).
This is part of fixing BZ 307113.
Modified files:
trunk/memcheck/mc_translate.c
trunk/memcheck/tests/vbit-test/irops.c
trunk/memcheck/tests/vbit-test/util.c
trunk/none/tests/s390x/dfp-3.c
trunk/none/tests/s390x/dfp-3.stdout.exp
Modified: trunk/none/tests/s390x/dfp-3.stdout.exp (+14 -0)
===================================================================
--- trunk/none/tests/s390x/dfp-3.stdout.exp 2012-12-24 15:10:19 +00:00 (rev 13202)
+++ trunk/none/tests/s390x/dfp-3.stdout.exp 2012-12-26 17:48:46 +00:00 (rev 13203)
@@ -12,3 +12,17 @@
780000000000000000000000 <> 7c0000000000000000000000 (cc == 3)
780000000000000000000000 == 780000000000000000000000 (cc == 0)
7c0000000000000000000000 <> 7c0000000000000000000000 (cc == 3)
+cedtr:
+2220000000500005 == 2220000000500005 (cc == 0)
+2220000000500005 < 363c000000000000 (cc == 1)
+363c000000000000 > 2220000000500005 (cc == 2)
+7800000000000000 <> 7c00000000000000 (cc == 3)
+7800000000000000 == 7800000000000000 (cc == 0)
+7c00000000000000 == 7c00000000000000 (cc == 0)
+cextr:
+2206c00000000000000a0005 == 2206c00000000000000a0005 (cc == 0)
+2206c00000000000000a0005 < 2207c00000000000140000000000005 (cc == 1)
+2207c00000000000140000000000005 > 2206c00000000000000a0005 (cc == 2)
+780000000000000000000000 <> 7c0000000000000000000000 (cc == 3)
+780000000000000000000000 == 780000000000000000000000 (cc == 0)
+7c0000000000000000000000 == 7c0000000000000000000000 (cc == 0)
Modified: trunk/none/tests/s390x/dfp-3.c (+30 -17)
===================================================================
--- trunk/none/tests/s390x/dfp-3.c 2012-12-24 15:10:19 +00:00 (rev 13202)
+++ trunk/none/tests/s390x/dfp-3.c 2012-12-26 17:48:46 +00:00 (rev 13203)
@@ -40,7 +40,7 @@
printf(" > "); \
break; \
case 3: \
- printf(" <> "); \
+ printf(" <> "); \
break; \
} \
DFP_VAL_PRINT(v2, type); \
@@ -52,11 +52,10 @@
_Decimal64 d64_1, d64_2;
_Decimal128 d128_1, d128_2;
+ /* compare 8 bytes DFP value */
+ printf("cdtr:\n");
d64_1 = 5.000005DD;
d64_2 = 50000000000000000.000005DD;
-
- // compare 8 bytes DFP value
- printf("cdtr:\n");
COMPARE(CDTR, d64_1, d64_1, _Decimal64);
COMPARE(CDTR, d64_1, d64_2, _Decimal64);
COMPARE(CDTR, d64_2, d64_1, _Decimal64);
@@ -68,18 +67,10 @@
COMPARE(CDTR, d64_1, d64_1, _Decimal64);
COMPARE(CDTR, d64_2, d64_2, _Decimal64);
-#if 0 //fixs390: enable it when Iop_ExtractD64 is available
- // compare exponents of 8 bytes DFP value
- printf("cedtr:\n");
- COMPARE(CEDTR, d64_1, d64_1, _Decimal64);
- COMPARE(CEDTR, d64_1, d64_2, _Decimal64);
- COMPARE(CEDTR, d64_2, d64_1, _Decimal64);
-#endif
+ /* compare 16 bytes DFP value */
+ printf("cxtr:\n");
d128_1 = 5.00005DL;
d128_2 = 5000000000000000.5DL;
-
- // compare 16 bytes DFP value
- printf("cxtr:\n");
COMPARE(CXTR, d128_1, d128_1, _Decimal128);
COMPARE(CXTR, d128_1, d128_2, _Decimal128);
COMPARE(CXTR, d128_2, d128_1, _Decimal128);
@@ -91,13 +82,35 @@
COMPARE(CXTR, d128_1, d128_1, _Decimal128);
COMPARE(CXTR, d128_2, d128_2, _Decimal128);
-#if 0 //fixs390: enable it when Iop_ExtractD128 is available
- // compare exponents of 16 bytes DFP value
+ /* compare exponents of 8 bytes DFP value */
+ printf("cedtr:\n");
+ d64_1 = 5.000005DD;
+ d64_2 = 50000000000000000.000005DD;
+ COMPARE(CEDTR, d64_1, d64_1, _Decimal64);
+ COMPARE(CEDTR, d64_1, d64_2, _Decimal64);
+ COMPARE(CEDTR, d64_2, d64_1, _Decimal64);
+
+ /* compare NAN and INF operands */
+ d64_1 = DEC_INFINITY;
+ d64_2 = DEC_NAN;
+ COMPARE(CEDTR, d64_1, d64_2, _Decimal64);
+ COMPARE(CEDTR, d64_1, d64_1, _Decimal64);
+ COMPARE(CEDTR, d64_2, d64_2, _Decimal64);
+
+ /* compare exponents of 16 bytes DFP value */
printf("cextr:\n");
+ d128_1 = 5.00005DL;
+ d128_2 = 5000000000000000.5DL;
COMPARE(CEXTR, d128_1, d128_1, _Decimal128);
COMPARE(CEXTR, d128_1, d128_2, _Decimal128);
COMPARE(CEXTR, d128_2, d128_1, _Decimal128);
-#endif
+ /* compare NAN and INF operands */
+ d128_1 = DEC_INFINITY;
+ d128_2 = DEC_NAN;
+ COMPARE(CEXTR, d128_1, d128_2, _Decimal128);
+ COMPARE(CEXTR, d128_1, d128_1, _Decimal128);
+ COMPARE(CEXTR, d128_2, d128_2, _Decimal128);
+
return 0;
}
Modified: trunk/memcheck/tests/vbit-test/irops.c (+2 -0)
===================================================================
--- trunk/memcheck/tests/vbit-test/irops.c 2012-12-24 15:10:19 +00:00 (rev 13202)
+++ trunk/memcheck/tests/vbit-test/irops.c 2012-12-26 17:48:46 +00:00 (rev 13203)
@@ -501,6 +501,8 @@
{ DEFOP(Iop_RoundD128toInt, UNDEF_ALL), .s390x = 0, .ppc64 = 1, .ppc32 = 1 },
{ DEFOP(Iop_CmpD64, UNDEF_ALL), .s390x = 1, .ppc64 = 1, .ppc32 = 1 },
{ DEFOP(Iop_CmpD128, UNDEF_ALL), .s390x = 1, .ppc64 = 1, .ppc32 = 1 },
+ { DEFOP(Iop_CmpExpD64, UNDEF_ALL), .s390x = 1, .ppc64 = 0, .ppc32 = 0 },
+ { DEFOP(Iop_CmpExpD128, UNDEF_ALL), .s390x = 1, .ppc64 = 0, .ppc32 = 0 },
{ DEFOP(Iop_QuantizeD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1, .ppc32 = 1 },
{ DEFOP(Iop_QuantizeD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1, .ppc32 = 1 },
{ DEFOP(Iop_SignificanceRoundD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1, .ppc32 = 1 },
Modified: trunk/memcheck/tests/vbit-test/util.c (+2 -0)
===================================================================
--- trunk/memcheck/tests/vbit-test/util.c 2012-12-24 15:10:19 +00:00 (rev 13202)
+++ trunk/memcheck/tests/vbit-test/util.c 2012-12-26 17:48:46 +00:00 (rev 13203)
@@ -884,9 +884,11 @@
BINARY(ity_RMode, Ity_D64, Ity_D64);
case Iop_CmpD64:
+ case Iop_CmpExpD64:
BINARY(Ity_D64,Ity_D64, Ity_I32);
case Iop_CmpD128:
+ case Iop_CmpExpD128:
BINARY(Ity_D128,Ity_D128, Ity_I32);
case Iop_QuantizeD64:
Modified: trunk/memcheck/mc_translate.c (+2 -0)
===================================================================
--- trunk/memcheck/mc_translate.c 2012-12-24 15:10:19 +00:00 (rev 13202)
+++ trunk/memcheck/mc_translate.c 2012-12-26 17:48:46 +00:00 (rev 13203)
@@ -3370,6 +3370,8 @@
case Iop_CmpF128:
case Iop_CmpD64:
case Iop_CmpD128:
+ case Iop_CmpExpD64:
+ case Iop_CmpExpD128:
return mkLazy2(mce, Ity_I32, vatom1, vatom2);
/* non-FP after here */
|
|
From: <sv...@va...> - 2012-12-26 17:47:28
|
florian 2012-12-26 17:47:19 +0000 (Wed, 26 Dec 2012)
New Revision: 2617
Log:
s390x: Support "compare biased exponent" insns CEDTR, CEXTR.
To do that properly, two new IROps are needed: Iop_CmpExpD64 and
Iop_CmpExpD128. It might seem that extracting the exponents using
Iop_ExtractExpD64/D128 and comparing the values could be used here.
But that only works for finite DFP values. Hence, the new IROps.
Patch by Maran Pakkirisamy (ma...@li...).
This is part of fixing BZ 307113.
Modified files:
trunk/priv/guest_s390_toIR.c
trunk/priv/host_s390_defs.c
trunk/priv/host_s390_defs.h
trunk/priv/host_s390_isel.c
trunk/priv/ir_defs.c
trunk/pub/libvex_ir.h
Modified: trunk/pub/libvex_ir.h (+7 -0)
===================================================================
--- trunk/pub/libvex_ir.h 2012-12-24 00:25:34 +00:00 (rev 2616)
+++ trunk/pub/libvex_ir.h 2012-12-26 17:47:19 +00:00 (rev 2617)
@@ -1073,6 +1073,13 @@
/* D128 x D128 -> IRCmpD128Result(I32) */
Iop_CmpD128,
+ /* COMPARE BIASED EXPONENET INSTRUCTIONS
+ * D64 x D64 -> IRCmpD64Result(I32) */
+ Iop_CmpExpD64,
+
+ /* D128 x D128 -> IRCmpD128Result(I32) */
+ Iop_CmpExpD128,
+
/* QUANTIZE AND ROUND INSTRUCTIONS
* The source operand is converted and rounded to the form with the
* immediate exponent specified by the rounding and exponent parameter.
Modified: trunk/priv/ir_defs.c (+9 -5)
===================================================================
--- trunk/priv/ir_defs.c 2012-12-24 00:25:34 +00:00 (rev 2616)
+++ trunk/priv/ir_defs.c 2012-12-26 17:47:19 +00:00 (rev 2617)
@@ -985,11 +985,13 @@
case Iop_ExtractExpD128: vex_printf("Iop_ExtractExpD128"); return;
case Iop_InsertExpD64: vex_printf("Iop_InsertExpD64"); return;
case Iop_InsertExpD128: vex_printf("Iop_InsertExpD128"); return;
- case Iop_CmpD64: vex_printf("CmpD64"); return;
- case Iop_CmpD128: vex_printf("CmpD128"); return;
- case Iop_D64HLtoD128: vex_printf("D64HLtoD128"); return;
- case Iop_D128HItoD64: vex_printf("D128HItoD64"); return;
- case Iop_D128LOtoD64: vex_printf("D128LOtoD64"); return;
+ case Iop_CmpD64: vex_printf("CmpD64"); return;
+ case Iop_CmpD128: vex_printf("CmpD128"); return;
+ case Iop_CmpExpD64: vex_printf("CmpExpD64"); return;
+ case Iop_CmpExpD128: vex_printf("CmpExpD128"); return;
+ case Iop_D64HLtoD128: vex_printf("D64HLtoD128"); return;
+ case Iop_D128HItoD64: vex_printf("D128HItoD64"); return;
+ case Iop_D128LOtoD64: vex_printf("D128LOtoD64"); return;
case Iop_SignificanceRoundD64: vex_printf("Iop_SignificanceRoundD64");
return;
case Iop_SignificanceRoundD128: vex_printf("Iop_SignificanceRoundD128");
@@ -2800,9 +2802,11 @@
BINARY(ity_RMode, Ity_D64, Ity_D64);
case Iop_CmpD64:
+ case Iop_CmpExpD64:
BINARY(Ity_D64,Ity_D64, Ity_I32);
case Iop_CmpD128:
+ case Iop_CmpExpD128:
BINARY(Ity_D128,Ity_D128, Ity_I32);
case Iop_QuantizeD64:
Modified: trunk/priv/guest_s390_toIR.c (+42 -2)
===================================================================
--- trunk/priv/guest_s390_toIR.c 2012-12-24 00:25:34 +00:00 (rev 2616)
+++ trunk/priv/guest_s390_toIR.c 2012-12-26 17:47:19 +00:00 (rev 2617)
@@ -9283,6 +9283,44 @@
}
static const HChar *
+s390_irgen_CEDTR(UChar r1, UChar r2)
+{
+ IRTemp op1 = newTemp(Ity_D64);
+ IRTemp op2 = newTemp(Ity_D64);
+ IRTemp cc_vex = newTemp(Ity_I32);
+ IRTemp cc_s390 = newTemp(Ity_I32);
+
+ vassert(s390_host_has_dfp);
+ assign(op1, get_dpr_dw0(r1));
+ assign(op2, get_dpr_dw0(r2));
+ assign(cc_vex, binop(Iop_CmpExpD64, mkexpr(op1), mkexpr(op2)));
+
+ assign(cc_s390, convert_vex_dfpcc_to_s390(cc_vex));
+ s390_cc_thunk_put1(S390_CC_OP_SET, cc_s390, False);
+
+ return "cedtr";
+}
+
+static const HChar *
+s390_irgen_CEXTR(UChar r1, UChar r2)
+{
+ IRTemp op1 = newTemp(Ity_D128);
+ IRTemp op2 = newTemp(Ity_D128);
+ IRTemp cc_vex = newTemp(Ity_I32);
+ IRTemp cc_s390 = newTemp(Ity_I32);
+
+ vassert(s390_host_has_dfp);
+ assign(op1, get_dpr_pair(r1));
+ assign(op2, get_dpr_pair(r2));
+ assign(cc_vex, binop(Iop_CmpExpD128, mkexpr(op1), mkexpr(op2)));
+
+ assign(cc_s390, convert_vex_dfpcc_to_s390(cc_vex));
+ s390_cc_thunk_put1(S390_CC_OP_SET, cc_s390, False);
+
+ return "cextr";
+}
+
+static const HChar *
s390_irgen_DDTRA(UChar r3, UChar m4, UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_D64);
@@ -13534,14 +13572,16 @@
case 0xb3f1: /* CDGTR */ goto unimplemented;
case 0xb3f2: /* CDUTR */ goto unimplemented;
case 0xb3f3: /* CDSTR */ goto unimplemented;
- case 0xb3f4: /* CEDTR */ goto unimplemented;
+ case 0xb3f4: s390_format_RRE_FF(s390_irgen_CEDTR, ovl.fmt.RRE.r1,
+ ovl.fmt.RRE.r2); goto ok;
case 0xb3f5: /* QADTR */ goto unimplemented;
case 0xb3f6: /* IEDTR */ goto unimplemented;
case 0xb3f7: /* RRDTR */ goto unimplemented;
case 0xb3f9: /* CXGTR */ goto unimplemented;
case 0xb3fa: /* CXUTR */ goto unimplemented;
case 0xb3fb: /* CXSTR */ goto unimplemented;
- case 0xb3fc: /* CEXTR */ goto unimplemented;
+ case 0xb3fc: s390_format_RRE_FF(s390_irgen_CEXTR, ovl.fmt.RRE.r1,
+ ovl.fmt.RRE.r2); goto ok;
case 0xb3fd: /* QAXTR */ goto unimplemented;
case 0xb3fe: /* IEXTR */ goto unimplemented;
case 0xb3ff: /* RRXTR */ goto unimplemented;
Modified: trunk/priv/host_s390_isel.c (+19 -6)
===================================================================
--- trunk/priv/host_s390_isel.c 2012-12-24 00:25:34 +00:00 (rev 2616)
+++ trunk/priv/host_s390_isel.c 2012-12-26 17:47:19 +00:00 (rev 2617)
@@ -1218,21 +1218,29 @@
return convert_s390_to_vex_bfpcc(env, cc_s390);
}
- case Iop_CmpD64: {
+ case Iop_CmpD64:
+ case Iop_CmpExpD64: {
HReg cc_s390, h2;
+ s390_dfp_cmp_t cmp;
h1 = s390_isel_dfp_expr(env, arg1);
h2 = s390_isel_dfp_expr(env, arg2);
cc_s390 = newVRegI(env);
- size = 8;
- addInstr(env, s390_insn_dfp_compare(size, cc_s390, h1, h2));
+ switch(expr->Iex.Binop.op) {
+ case Iop_CmpD64: cmp = S390_DFP_COMPARE; break;
+ case Iop_CmpExpD64: cmp = S390_DFP_COMPARE_EXP; break;
+ default: goto irreducible;
+ }
+ addInstr(env, s390_insn_dfp_compare(8, cmp, cc_s390, h1, h2));
return convert_s390_to_vex_dfpcc(env, cc_s390);
}
- case Iop_CmpD128: {
+ case Iop_CmpD128:
+ case Iop_CmpExpD128: {
HReg op1_hi, op1_lo, op2_hi, op2_lo, f12, f13, f14, f15, cc_s390;
+ s390_dfp_cmp_t cmp;
s390_isel_dfp128_expr(&op1_hi, &op1_lo, env, arg1); /* 1st operand */
s390_isel_dfp128_expr(&op2_hi, &op2_lo, env, arg2); /* 2nd operand */
@@ -1252,8 +1260,13 @@
addInstr(env, s390_insn_move(8, f13, op2_hi));
addInstr(env, s390_insn_move(8, f15, op2_lo));
- res = newVRegI(env);
- addInstr(env, s390_insn_dfp128_compare(16, cc_s390, f12, f14, f13, f15));
+ switch(expr->Iex.Binop.op) {
+ case Iop_CmpD128: cmp = S390_DFP_COMPARE; break;
+ case Iop_CmpExpD128: cmp = S390_DFP_COMPARE_EXP; break;
+ default: goto irreducible;
+ }
+ addInstr(env, s390_insn_dfp128_compare(16, cmp, cc_s390, f12, f14,
+ f13, f15));
return convert_s390_to_vex_dfpcc(env, cc_s390);
}
Modified: trunk/priv/host_s390_defs.h (+12 -3)
===================================================================
--- trunk/priv/host_s390_defs.h 2012-12-24 00:25:34 +00:00 (rev 2616)
+++ trunk/priv/host_s390_defs.h 2012-12-26 17:47:19 +00:00 (rev 2617)
@@ -254,7 +254,13 @@
S390_DFP_DIV
} s390_dfp_binop_t;
+/* The kind of DFP compare operations */
+typedef enum {
+ S390_DFP_COMPARE,
+ S390_DFP_COMPARE_EXP,
+} s390_dfp_cmp_t;
+
/* The details of a CDAS insn. Carved out to keep the size of
s390_insn low */
typedef struct {
@@ -446,6 +452,7 @@
HReg op_lo; /* 128-bit operand low part */
} dfp_convert;
struct {
+ s390_dfp_cmp_t tag;
HReg dst; /* condition code in s390 encoding */
HReg op1_hi; /* 128-bit operand high part; 64-bit opnd 1 */
HReg op1_lo; /* 128-bit operand low part */
@@ -560,15 +567,17 @@
s390_insn *s390_insn_dfp_binop(UChar size, s390_dfp_binop_t, HReg dst,
HReg op2, HReg op3,
s390_dfp_round_t rounding_mode);
-s390_insn *s390_insn_dfp_compare(UChar size, HReg dst, HReg op1, HReg op2);
+s390_insn *s390_insn_dfp_compare(UChar size, s390_dfp_cmp_t, HReg dst,
+ HReg op1, HReg op2);
s390_insn *s390_insn_dfp_convert(UChar size, s390_dfp_conv_t tag, HReg dst,
HReg op, s390_dfp_round_t);
s390_insn *s390_insn_dfp128_binop(UChar size, s390_dfp_binop_t, HReg dst_hi,
HReg dst_lo, HReg op2_hi, HReg op2_lo,
HReg op3_hi, HReg op3_lo,
s390_dfp_round_t rounding_mode);
-s390_insn *s390_insn_dfp128_compare(UChar size, HReg dst, HReg op1_hi,
- HReg op1_lo, HReg op2_hi, HReg op2_lo);
+s390_insn *s390_insn_dfp128_compare(UChar size, s390_dfp_cmp_t, HReg dst,
+ HReg op1_hi, HReg op1_lo, HReg op2_hi,
+ HReg op2_lo);
s390_insn *s390_insn_dfp128_convert_to(UChar size, s390_dfp_conv_t,
HReg dst_hi, HReg dst_lo, HReg op);
s390_insn *s390_insn_dfp128_convert_from(UChar size, s390_dfp_conv_t,
Modified: trunk/priv/host_s390_defs.c (+48 -6)
===================================================================
--- trunk/priv/host_s390_defs.c 2012-12-24 00:25:34 +00:00 (rev 2616)
+++ trunk/priv/host_s390_defs.c 2012-12-26 17:47:19 +00:00 (rev 2617)
@@ -4009,6 +4009,26 @@
static UChar *
+s390_emit_CEDTR(UChar *p, UChar r1, UChar r2)
+{
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
+ s390_disasm(ENC3(MNM, FPR, FPR), "cedtr", r1, r2);
+
+ return emit_RRE(p, 0xb3f40000, r1, r2);
+}
+
+
+static UChar *
+s390_emit_CEXTR(UChar *p, UChar r1, UChar r2)
+{
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
+ s390_disasm(ENC3(MNM, FPR, FPR), "cextr", r1, r2);
+
+ return emit_RRE(p, 0xb3fc0000, r1, r2);
+}
+
+
+static UChar *
s390_emit_DDTRA(UChar *p, UChar r3, UChar m4, UChar r1, UChar r2)
{
vassert(s390_host_has_dfp);
@@ -5292,7 +5312,8 @@
s390_insn *
-s390_insn_dfp_compare(UChar size, HReg dst, HReg op1, HReg op2)
+s390_insn_dfp_compare(UChar size, s390_dfp_cmp_t tag, HReg dst,
+ HReg op1, HReg op2)
{
s390_insn *insn = LibVEX_Alloc(sizeof(s390_insn));
@@ -5300,6 +5321,7 @@
insn->tag = S390_INSN_DFP_COMPARE;
insn->size = size;
+ insn->variant.dfp_compare.tag = tag;
insn->variant.dfp_compare.dst = dst;
insn->variant.dfp_compare.op1_hi = op1;
insn->variant.dfp_compare.op2_hi = op2;
@@ -5362,8 +5384,8 @@
s390_insn *
-s390_insn_dfp128_compare(UChar size, HReg dst, HReg op1_hi, HReg op1_lo,
- HReg op2_hi, HReg op2_lo)
+s390_insn_dfp128_compare(UChar size, s390_dfp_cmp_t tag, HReg dst, HReg op1_hi,
+ HReg op1_lo, HReg op2_hi, HReg op2_lo)
{
s390_insn *insn = LibVEX_Alloc(sizeof(s390_insn));
@@ -5373,6 +5395,7 @@
insn->tag = S390_INSN_DFP_COMPARE;
insn->size = size;
+ insn->variant.dfp_compare.tag = tag;
insn->variant.dfp_compare.dst = dst;
insn->variant.dfp_compare.op1_hi = op1_hi;
insn->variant.dfp_compare.op1_lo = op1_lo;
@@ -6025,7 +6048,12 @@
}
case S390_INSN_DFP_COMPARE:
- s390_sprintf(buf, "%M %R,%R,%R", "v-dcmp", insn->variant.dfp_compare.dst,
+ switch (insn->variant.dfp_compare.tag) {
+ case S390_DFP_COMPARE: op = "v-dcmp"; break;
+ case S390_DFP_COMPARE_EXP: op = "v-dcmpexp"; break;
+ default: goto fail;
+ }
+ s390_sprintf(buf, "%M %R,%R,%R", op, insn->variant.dfp_compare.dst,
insn->variant.dfp_compare.op1_hi,
insn->variant.dfp_compare.op2_hi);
break;
@@ -8215,8 +8243,22 @@
UInt r2 = hregNumber(insn->variant.dfp_compare.op2_hi);
switch (insn->size) {
- case 8: buf = s390_emit_CDTR(buf, r1, r2); break;
- case 16: buf = s390_emit_CXTR(buf, r1, r2); break;
+ case 8:
+ switch(insn->variant.dfp_compare.tag) {
+ case S390_DFP_COMPARE: buf = s390_emit_CDTR(buf, r1, r2); break;
+ case S390_DFP_COMPARE_EXP: buf = s390_emit_CEDTR(buf, r1, r2); break;
+ default: goto fail;
+ }
+ break;
+
+ case 16:
+ switch(insn->variant.dfp_compare.tag) {
+ case S390_DFP_COMPARE: buf = s390_emit_CXTR(buf, r1, r2); break;
+ case S390_DFP_COMPARE_EXP: buf = s390_emit_CEXTR(buf, r1, r2); break;
+ default: goto fail;
+ }
+ break;
+
default: goto fail;
}
|
|
From: Philippe W. <phi...@sk...> - 2012-12-25 04:48:53
|
valgrind revision: 13202 VEX revision: 2616 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716 C library: GNU C Library development release version 2.14.90 uname -mrs: Linux 3.3.1-3.fc16.ppc64 ppc64 Vendor version: Fedora release 16 (Verne) Nightly build on gcc110 ( Fedora release 16 (Verne), ppc64 ) Started at 2012-12-24 20:00:17 PST Ended at 2012-12-24 20:47:08 PST 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 == 543 tests, 10 stderr failures, 5 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) gdbserver_tests/mcmain_pic (stderr) gdbserver_tests/mcmain_pic (stdoutB) gdbserver_tests/mcmain_pic (stderrB) memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) none/tests/ppc32/test_dfp2 (stdout) none/tests/ppc32/test_dfp2 (stderr) none/tests/ppc64/test_dfp2 (stdout) none/tests/ppc64/test_dfp2 (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (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 == 542 tests, 10 stderr failures, 5 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) gdbserver_tests/mcmain_pic (stderr) gdbserver_tests/mcmain_pic (stdoutB) gdbserver_tests/mcmain_pic (stderrB) memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) none/tests/ppc32/test_dfp2 (stdout) none/tests/ppc32/test_dfp2 (stderr) none/tests/ppc64/test_dfp2 (stdout) none/tests/ppc64/test_dfp2 (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Dec 24 20:24:41 2012 --- new.short Mon Dec 24 20:47:08 2012 *************** *** 8,10 **** ! == 542 tests, 10 stderr failures, 5 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) --- 8,10 ---- ! == 543 tests, 10 stderr failures, 5 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) |
|
From: Christian B. <bor...@de...> - 2012-12-25 03:13:43
|
valgrind revision: 13202 VEX revision: 2616 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.21.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.42-0.7-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP2 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP1 gcc 4.3.4 on z196 (s390x) ) Started at 2012-12-25 03:45:02 CET Ended at 2012-12-25 04:13:27 CET Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 619 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == ================================================= == 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 == 618 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Dec 25 03:59:17 2012 --- new.short Tue Dec 25 04:13:27 2012 *************** *** 8,10 **** ! == 618 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == --- 8,10 ---- ! == 619 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Christian B. <bor...@de...> - 2012-12-25 03:10:12
|
valgrind revision: 13202 VEX revision: 2616 C compiler: gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9bb4) Assembler: GNU assembler version 2.21.51.0.6-6bb6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.6.8-57.x.20121204-s390xperformance s390x Vendor version: unknown Nightly build on fedora390 ( Fedora 15 with devel libc/toolchain on z196 (s390x) ) Started at 2012-12-25 03:45:01 CET Ended at 2012-12-25 04:10:19 CET 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 == 620 tests, 3 stderr failures, 0 stdout failures, 6 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcbreak (stderrB) gdbserver_tests/mcclean_after_fork (stderrB) gdbserver_tests/mcleak (stderrB) gdbserver_tests/mcmain_pic (stderrB) gdbserver_tests/mcvabits (stderrB) gdbserver_tests/mssnapshot (stderrB) memcheck/tests/linux/timerfd-syscall (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (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 == 619 tests, 3 stderr failures, 1 stdout failure, 6 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcbreak (stderrB) gdbserver_tests/mcclean_after_fork (stderrB) gdbserver_tests/mcleak (stderrB) gdbserver_tests/mcmain_pic (stderrB) gdbserver_tests/mcvabits (stderrB) gdbserver_tests/mssnapshot (stderrB) memcheck/tests/linux/timerfd-syscall (stderr) none/tests/s390x/test_clone (stdout) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Dec 25 03:57:40 2012 --- new.short Tue Dec 25 04:10:19 2012 *************** *** 8,10 **** ! == 619 tests, 3 stderr failures, 1 stdout failure, 6 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcbreak (stderrB) --- 8,10 ---- ! == 620 tests, 3 stderr failures, 0 stdout failures, 6 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcbreak (stderrB) *************** *** 16,18 **** memcheck/tests/linux/timerfd-syscall (stderr) - none/tests/s390x/test_clone (stdout) helgrind/tests/tc18_semabuse (stderr) --- 16,17 ---- |
|
From: <sv...@va...> - 2012-12-24 15:10:30
|
florian 2012-12-24 15:10:19 +0000 (Mon, 24 Dec 2012)
New Revision: 13202
Log:
Avoid compiler warning on ppc32.
Modified files:
trunk/memcheck/tests/ppc32/power_ISA2_05.c
Modified: trunk/memcheck/tests/ppc32/power_ISA2_05.c (+1 -2)
===================================================================
--- trunk/memcheck/tests/ppc32/power_ISA2_05.c 2012-12-24 11:14:08 +00:00 (rev 13201)
+++ trunk/memcheck/tests/ppc32/power_ISA2_05.c 2012-12-24 15:10:19 +00:00 (rev 13202)
@@ -23,14 +23,13 @@
void test_parity_instrs()
{
- unsigned long long_word;
unsigned int word;
int i, parity;
for (i = 0; i < 50; i++) {
word = base256(i);
#ifdef __powerpc64__
- long_word = word;
+ unsigned long long_word = word;
__asm__ volatile ("prtyd %0, %1":"=r" (parity):"r"(long_word));
printf("prtyd (%x) => parity=%x\n", i, parity);
#endif
|
|
From: <sv...@va...> - 2012-12-24 11:14:24
|
bart 2012-12-24 11:14:08 +0000 (Mon, 24 Dec 2012)
New Revision: 13201
Log:
none/tests/process_vm_readv_writev: Avoid that compilation of this test program triggers a compiler warning
Modified files:
trunk/none/tests/process_vm_readv_writev.c
Modified: trunk/none/tests/process_vm_readv_writev.c (+2 -0)
===================================================================
--- trunk/none/tests/process_vm_readv_writev.c 2012-12-24 10:43:15 +00:00 (rev 13200)
+++ trunk/none/tests/process_vm_readv_writev.c 2012-12-24 11:14:08 +00:00 (rev 13201)
@@ -1,3 +1,5 @@
+#define _GNU_SOURCE 1
+
#include <config.h>
#include <stdlib.h>
#include <stdio.h>
|
|
From: <sv...@va...> - 2012-12-24 10:43:23
|
bart 2012-12-24 10:43:15 +0000 (Mon, 24 Dec 2012)
New Revision: 13200
Log:
drd/tests/pth_cond_destroy_busy: Correct expected output
Modified files:
trunk/drd/tests/pth_cond_destroy_busy.stderr.exp
Modified: trunk/drd/tests/pth_cond_destroy_busy.stderr.exp (+2 -2)
===================================================================
--- trunk/drd/tests/pth_cond_destroy_busy.stderr.exp 2012-12-24 10:23:16 +00:00 (rev 13199)
+++ trunk/drd/tests/pth_cond_destroy_busy.stderr.exp 2012-12-24 10:43:15 +00:00 (rev 13200)
@@ -6,7 +6,7 @@
at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_cond_destroy_busy.c:?)
-First pthread_cond_destroy() call returned EBUSY
-Second pthread_cond_destroy() call returned success
+First pthread_cond_destroy() call returned EBUSY.
+Second pthread_cond_destroy() call returned success.
ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
|
|
From: <sv...@va...> - 2012-12-24 10:23:23
|
bart 2012-12-24 10:23:16 +0000 (Mon, 24 Dec 2012)
New Revision: 13199
Log:
drd/tests/pth_cond_destroy_busy: Add
Added files:
trunk/drd/tests/pth_cond_destroy_busy.c
trunk/drd/tests/pth_cond_destroy_busy.stderr.exp
trunk/drd/tests/pth_cond_destroy_busy.vgtest
Modified files:
trunk/drd/tests/Makefile.am
Added: trunk/drd/tests/pth_cond_destroy_busy.stderr.exp (+12 -0)
===================================================================
--- trunk/drd/tests/pth_cond_destroy_busy.stderr.exp 2012-12-24 10:22:14 +00:00 (rev 13198)
+++ trunk/drd/tests/pth_cond_destroy_busy.stderr.exp 2012-12-24 10:23:16 +00:00 (rev 13199)
@@ -0,0 +1,12 @@
+
+destruction of condition variable being waited upon: cond 0x........
+ at 0x........: pthread_cond_destroy (drd_pthread_intercepts.c:?)
+ by 0x........: main (pth_cond_destroy_busy.c:?)
+cond 0x........ was first observed at:
+ at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
+ by 0x........: main (pth_cond_destroy_busy.c:?)
+
+First pthread_cond_destroy() call returned EBUSY
+Second pthread_cond_destroy() call returned success
+
+ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Added: trunk/drd/tests/pth_cond_destroy_busy.vgtest (+2 -0)
===================================================================
--- trunk/drd/tests/pth_cond_destroy_busy.vgtest 2012-12-24 10:22:14 +00:00 (rev 13198)
+++ trunk/drd/tests/pth_cond_destroy_busy.vgtest 2012-12-24 10:23:16 +00:00 (rev 13199)
@@ -0,0 +1,2 @@
+prereq: ./supported_libpthread
+prog: pth_cond_destroy_busy
Added: trunk/drd/tests/pth_cond_destroy_busy.c (+69 -0)
===================================================================
--- trunk/drd/tests/pth_cond_destroy_busy.c 2012-12-24 10:22:14 +00:00 (rev 13198)
+++ trunk/drd/tests/pth_cond_destroy_busy.c 2012-12-24 10:23:16 +00:00 (rev 13199)
@@ -0,0 +1,69 @@
+/*
+ * Invoke pthread_cond_destroy() on a condition variable that is being waited
+ * upon.
+ */
+
+#include <assert.h>
+#include <errno.h>
+#include <stdio.h> // printf()
+#include <pthread.h>
+
+static pthread_mutex_t s_mutex;
+static pthread_cond_t s_cond;
+static int s_i;
+
+static const char* err_to_str(int errnum)
+{
+ switch (errnum) {
+ case 0: return "success";
+ case EBUSY: return "EBUSY";
+ case EINVAL: return "EINVAL";
+ default: return "?";
+ }
+}
+
+static void* thread_func(void* thread_arg)
+{
+ pthread_mutex_lock(&s_mutex);
+ s_i = 1;
+ pthread_cond_signal(&s_cond);
+ while (s_i == 1)
+ pthread_cond_wait(&s_cond, &s_mutex);
+ pthread_mutex_unlock(&s_mutex);
+
+ return 0;
+}
+
+int main(int argc, char** argv)
+{
+ pthread_t threadid;
+ int ret;
+
+ pthread_mutex_init(&s_mutex, 0);
+ pthread_cond_init(&s_cond, 0);
+
+ pthread_create(&threadid, 0, thread_func, 0);
+
+ pthread_mutex_lock(&s_mutex);
+ while (s_i == 0)
+ pthread_cond_wait(&s_cond, &s_mutex);
+ pthread_mutex_unlock(&s_mutex);
+
+ ret = pthread_cond_destroy(&s_cond);
+ fprintf(stderr, "First pthread_cond_destroy() call returned %s.\n",
+ err_to_str(ret));
+
+ pthread_mutex_lock(&s_mutex);
+ s_i = 2;
+ pthread_cond_signal(&s_cond);
+ pthread_mutex_unlock(&s_mutex);
+
+ pthread_join(threadid, 0);
+
+ ret = pthread_cond_destroy(&s_cond);
+ fprintf(stderr, "Second pthread_cond_destroy() call returned %s.\n",
+ err_to_str(ret));
+ pthread_mutex_destroy(&s_mutex);
+
+ return 0;
+}
Modified: trunk/drd/tests/Makefile.am (+3 -0)
===================================================================
--- trunk/drd/tests/Makefile.am 2012-12-24 10:22:14 +00:00 (rev 13198)
+++ trunk/drd/tests/Makefile.am 2012-12-24 10:23:16 +00:00 (rev 13199)
@@ -156,6 +156,8 @@
pth_cancel_locked.vgtest \
pth_cleanup_handler.stderr.exp \
pth_cleanup_handler.vgtest \
+ pth_cond_destroy_busy.stderr.exp \
+ pth_cond_destroy_busy.vgtest \
pth_cond_race.stderr.exp \
pth_cond_race.vgtest \
pth_cond_race2.stderr.exp \
@@ -315,6 +317,7 @@
pth_broadcast \
pth_cancel_locked \
pth_cleanup_handler \
+ pth_cond_destroy_busy \
pth_cond_race \
pth_create_chain \
pth_detached \
|
|
From: <sv...@va...> - 2012-12-24 10:22:23
|
bart 2012-12-24 10:22:14 +0000 (Mon, 24 Dec 2012)
New Revision: 13198
Log:
drd: Handle pthread_cond_destroy() failure properly
Modified files:
trunk/drd/drd_clientreq.c
trunk/drd/drd_clientreq.h
trunk/drd/drd_cond.c
trunk/drd/drd_cond.h
trunk/drd/drd_pthread_intercepts.c
Modified: trunk/drd/drd_clientreq.h (+1 -1)
===================================================================
--- trunk/drd/drd_clientreq.h 2012-12-24 00:16:23 +00:00 (rev 13197)
+++ trunk/drd/drd_clientreq.h 2012-12-24 10:22:14 +00:00 (rev 13198)
@@ -125,7 +125,7 @@
/* args: Addr */
/* to notify the drd tool of a pthread_cond_destroy call. */
VG_USERREQ__POST_COND_DESTROY,
- /* args: Addr */
+ /* args: Addr cond, Bool destroy_succeeded */
VG_USERREQ__PRE_COND_WAIT,
/* args: Addr cond, Addr mutex, MutexT mt */
VG_USERREQ__POST_COND_WAIT,
Modified: trunk/drd/drd_clientreq.c (+1 -1)
===================================================================
--- trunk/drd/drd_clientreq.c 2012-12-24 00:16:23 +00:00 (rev 13197)
+++ trunk/drd/drd_clientreq.c 2012-12-24 10:22:14 +00:00 (rev 13198)
@@ -373,7 +373,7 @@
case VG_USERREQ__POST_COND_DESTROY:
if (DRD_(thread_leave_synchr)(drd_tid) == 0)
- DRD_(cond_post_destroy)(arg[1]);
+ DRD_(cond_post_destroy)(arg[1], arg[2]);
break;
case VG_USERREQ__PRE_COND_WAIT:
Modified: trunk/drd/drd_pthread_intercepts.c (+1 -1)
===================================================================
--- trunk/drd/drd_pthread_intercepts.c 2012-12-24 00:16:23 +00:00 (rev 13197)
+++ trunk/drd/drd_pthread_intercepts.c 2012-12-24 10:22:14 +00:00 (rev 13198)
@@ -717,7 +717,7 @@
cond, 0, 0, 0, 0);
CALL_FN_W_W(ret, fn, cond);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__POST_COND_DESTROY,
- cond, 0, 0, 0, 0);
+ cond, ret==0, 0, 0, 0);
return ret;
}
Modified: trunk/drd/drd_cond.h (+1 -1)
===================================================================
--- trunk/drd/drd_cond.h 2012-12-24 00:16:23 +00:00 (rev 13197)
+++ trunk/drd/drd_cond.h 2012-12-24 10:22:14 +00:00 (rev 13198)
@@ -47,7 +47,7 @@
void DRD_(cond_set_trace)(const Bool trace_cond);
struct cond_info* DRD_(cond_get)(const Addr cond);
void DRD_(cond_pre_init)(const Addr cond);
-void DRD_(cond_post_destroy)(const Addr cond);
+void DRD_(cond_post_destroy)(const Addr cond, const Bool destroy_succeeded);
void DRD_(cond_pre_wait)(const Addr cond, const Addr mutex);
void DRD_(cond_post_wait)(const Addr cond);
void DRD_(cond_pre_signal)(const Addr cond);
Modified: trunk/drd/drd_cond.c (+3 -2)
===================================================================
--- trunk/drd/drd_cond.c 2012-12-24 00:16:23 +00:00 (rev 13197)
+++ trunk/drd/drd_cond.c 2012-12-24 10:22:14 +00:00 (rev 13198)
@@ -166,7 +166,7 @@
}
/** Called after pthread_cond_destroy(). */
-void DRD_(cond_post_destroy)(const Addr cond)
+void DRD_(cond_post_destroy)(const Addr cond, const Bool destroy_succeeded)
{
struct cond_info* p;
@@ -197,7 +197,8 @@
&cei);
}
- DRD_(clientobj_remove)(p->a1, ClientCondvar);
+ if (destroy_succeeded)
+ DRD_(clientobj_remove)(p->a1, ClientCondvar);
}
/**
|