1
0
mirror of https://github.com/ioacademy-jikim/debugging synced 2026-08-30 09:19:28 +00:00

first commit

This commit is contained in:
jikim
2015-12-13 22:34:58 +09:00
commit 0b589c7986
9455 changed files with 4350134 additions and 0 deletions
@@ -0,0 +1 @@
# dummy
@@ -0,0 +1,986 @@
# Makefile.in generated by automake 1.14.1 from Makefile.am.
# exp-bbv/tests/amd64-linux/Makefile. Generated from Makefile.in by configure.
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
# This file is used for tool tests, and also in perf/Makefile.am.
# This file should be included (directly or indirectly) by every
# Makefile.am that builds programs. And also the top-level Makefile.am.
#----------------------------------------------------------------------------
# Global stuff
#----------------------------------------------------------------------------
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/valgrind
pkgincludedir = $(includedir)/valgrind
pkglibdir = $(libdir)/valgrind
pkglibexecdir = $(libexecdir)/valgrind
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = i686-pc-linux-gnu
host_triplet = i686-pc-linux-gnu
DIST_COMMON = $(top_srcdir)/Makefile.tool-tests.am \
$(top_srcdir)/Makefile.all.am $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am $(dist_noinst_SCRIPTS) \
$(top_srcdir)/depcomp
#am__append_1 = -Wno-cast-align -Wno-self-assign \
# -Wno-tautological-compare
#am__append_2 = -Wl,-M,$(top_srcdir)/solaris/vgpreload-solaris.mapfile
# The Android toolchain includes all kinds of stdlib helpers present in
# bionic which is bad because we are not linking with it and the Android
# linker will panic.
#am__append_3 = -nostdlib
#am__append_4 = -DVGA_SEC_=1 \
# -DVGP_SEC_x86_linux=1
# Make sure that all test programs have threaded errno.
#am__append_5 = -D_REENTRANT
#am__append_6 = -Wno-format-extra-args \
# -Wno-literal-range \
# -Wno-tautological-constant-out-of-range-compare \
# -Wno-self-assign -Wno-string-plus-int \
# -Wno-uninitialized -Wno-unused-value # \
# clang 3.0.0
#am__append_7 = -Wno-unused-private-field # drd/tests/tsan_unittest.cpp
check_PROGRAMS = million$(EXEEXT) rep_prefix$(EXEEXT) \
fldcw_check$(EXEEXT) complex_rep$(EXEEXT) clone_test$(EXEEXT) \
$(am__EXEEXT_1)
# To compile the ll testcase, the compiler needs to support -Xassembler
# ICC does not do that
am__append_8 = -Xassembler -I$(top_srcdir)/exp-bbv/tests
am__append_9 = ll
subdir = exp-bbv/tests/amd64-linux
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__EXEEXT_1 = ll$(EXEEXT)
am_clone_test_OBJECTS = clone_test.$(OBJEXT)
clone_test_OBJECTS = $(am_clone_test_OBJECTS)
clone_test_LDADD = $(LDADD)
am_complex_rep_OBJECTS = complex_rep.$(OBJEXT)
complex_rep_OBJECTS = $(am_complex_rep_OBJECTS)
complex_rep_LDADD = $(LDADD)
am_fldcw_check_OBJECTS = fldcw_check.$(OBJEXT)
fldcw_check_OBJECTS = $(am_fldcw_check_OBJECTS)
fldcw_check_LDADD = $(LDADD)
am__ll_SOURCES_DIST = ll.S
am_ll_OBJECTS = ll.$(OBJEXT)
ll_OBJECTS = $(am_ll_OBJECTS)
ll_LDADD = $(LDADD)
am_million_OBJECTS = million.$(OBJEXT)
million_OBJECTS = $(am_million_OBJECTS)
million_LDADD = $(LDADD)
am_rep_prefix_OBJECTS = rep_prefix.$(OBJEXT)
rep_prefix_OBJECTS = $(am_rep_prefix_OBJECTS)
rep_prefix_LDADD = $(LDADD)
SCRIPTS = $(dist_noinst_SCRIPTS)
AM_V_P = $(am__v_P_$(V))
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I. -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
AM_V_CPPAS = $(am__v_CPPAS_$(V))
am__v_CPPAS_ = $(am__v_CPPAS_$(AM_DEFAULT_VERBOSITY))
am__v_CPPAS_0 = @echo " CPPAS " $@;
am__v_CPPAS_1 =
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_$(V))
am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
am__v_CC_0 = @echo " CC " $@;
am__v_CC_1 =
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_$(V))
am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(clone_test_SOURCES) $(complex_rep_SOURCES) \
$(fldcw_check_SOURCES) $(ll_SOURCES) $(million_SOURCES) \
$(rep_prefix_SOURCES)
DIST_SOURCES = $(clone_test_SOURCES) $(complex_rep_SOURCES) \
$(fldcw_check_SOURCES) $(am__ll_SOURCES_DIST) \
$(million_SOURCES) $(rep_prefix_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = ${SHELL} /root/03_day/valgrind-3.11.0/missing aclocal-1.14
AMTAR = $${TAR-tar}
AM_DEFAULT_VERBOSITY = 1
AR = /usr/bin/ar
AUTOCONF = ${SHELL} /root/03_day/valgrind-3.11.0/missing autoconf
AUTOHEADER = ${SHELL} /root/03_day/valgrind-3.11.0/missing autoheader
AUTOMAKE = ${SHELL} /root/03_day/valgrind-3.11.0/missing automake-1.14
AWK = gawk
BOOST_CFLAGS =
BOOST_LIBS =
CC = gcc
CCAS = gcc
CCASDEPMODE = depmode=gcc3
CCASFLAGS =
CCDEPMODE = depmode=gcc3
CFLAGS =
CFLAGS_MPI = -g -O -fno-omit-frame-pointer -Wall -fpic
CPP = gcc -E
CPPFLAGS =
CXX = g++
CXXDEPMODE = depmode=gcc3
CXXFLAGS =
CYGPATH_W = echo
DEFAULT_SUPP = exp-sgcheck.supp xfree-3.supp xfree-4.supp glibc-2.X-drd.supp glibc-2.34567-NPTL-helgrind.supp glibc-2.X.supp
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
DIFF = diff -u
DIS_PATH =
ECHO_C =
ECHO_N = -n
ECHO_T =
EGREP = /bin/grep -E
EXEEXT =
FLAG_FNO_IPA_ICF = -fno-ipa-icf
FLAG_FNO_STACK_PROTECTOR = -fno-stack-protector
FLAG_FSANITIZE =
FLAG_M32 = -m32
FLAG_M64 = -m64
FLAG_MIPS32 =
FLAG_MIPS64 =
FLAG_MLONG_DOUBLE_128 = -mlong-double-128
FLAG_MMMX = -mmmx
FLAG_MSSE = -msse
FLAG_NO_BUILD_ID =
FLAG_OCTEON =
FLAG_OCTEON2 =
FLAG_T_TEXT = -Ttext-segment
FLAG_UNLIMITED_INLINE_UNIT_GROWTH = --param inline-unit-growth=900
FLAG_W_CAST_ALIGN = -Wcast-align
FLAG_W_CAST_QUAL = -Wcast-qual
FLAG_W_EMPTY_BODY = -Wempty-body
FLAG_W_EXTRA = -Wextra
FLAG_W_FORMAT = -Wformat
FLAG_W_FORMAT_SECURITY = -Wformat-security
FLAG_W_FORMAT_SIGNEDNESS =
FLAG_W_IGNORED_QUALIFIERS = -Wignored-qualifiers
FLAG_W_MISSING_PARAMETER_TYPE = -Wmissing-parameter-type
FLAG_W_NO_INFINITE_RECURSION =
FLAG_W_NO_MEMSET_TRANSPOSED_ARGS = -Wno-memset-transposed-args
FLAG_W_NO_MISMATCHED_NEW_DELETE =
FLAG_W_NO_NONNULL = -Wno-nonnull
FLAG_W_NO_OVERFLOW = -Wno-overflow
FLAG_W_NO_POINTER_SIGN = -Wno-pointer-sign
FLAG_W_NO_STATIC_LOCAL_IN_INLINE =
FLAG_W_NO_UNINITIALIZED = -Wno-uninitialized
FLAG_W_NO_UNUSED_FUNCTION = -Wno-unused-function
FLAG_W_OLD_STYLE_DECLARATION = -Wold-style-declaration
FLAG_W_WRITE_STRINGS = -Wwrite-strings
GDB = /usr/bin/gdb
GLIBC_VERSION = 2.21
GREP = /bin/grep
HWCAP_HAS_ALTIVEC =
HWCAP_HAS_DFP =
HWCAP_HAS_HTM =
HWCAP_HAS_ISA_2_05 =
HWCAP_HAS_ISA_2_06 =
HWCAP_HAS_ISA_2_07 =
HWCAP_HAS_VSX =
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LDFLAGS = -nostartfiles -nodefaultlibs
LDFLAGS_MPI = -fpic -shared
LIBOBJS =
LIBS =
LIB_UBSAN =
LN_S = ln -s
LTLIBOBJS =
MAINT = #
MAKEINFO = ${SHELL} /root/03_day/valgrind-3.11.0/missing makeinfo
MKDIR_P = /bin/mkdir -p
MPI_CC = mpicc
OBJEXT = o
PACKAGE = valgrind
PACKAGE_BUGREPORT = valgrind-users@lists.sourceforge.net
PACKAGE_NAME = Valgrind
PACKAGE_STRING = Valgrind 3.11.0
PACKAGE_TARNAME = valgrind
PACKAGE_URL =
PACKAGE_VERSION = 3.11.0
PATH_SEPARATOR = :
PERL = /usr/bin/perl
PREFERRED_STACK_BOUNDARY_2 = -mpreferred-stack-boundary=2
RANLIB = ranlib
SED = /bin/sed
SET_MAKE =
SHELL = /bin/bash
STRIP =
VALT_LOAD_ADDRESS_PRI = 0x38000000
VALT_LOAD_ADDRESS_SEC = 0xUNSET
VERSION = 3.11.0
VGCONF_ARCH_PRI = x86
VGCONF_ARCH_SEC =
VGCONF_OS = linux
VGCONF_PLATFORM_PRI_CAPS = X86_LINUX
VGCONF_PLATFORM_SEC_CAPS =
VGCONF_PLATVARIANT = vanilla
VG_TMPDIR = /tmp
abs_builddir = /root/03_day/valgrind-3.11.0/exp-bbv/tests/amd64-linux
abs_srcdir = /root/03_day/valgrind-3.11.0/exp-bbv/tests/amd64-linux
abs_top_builddir = /root/03_day/valgrind-3.11.0
abs_top_srcdir = /root/03_day/valgrind-3.11.0
ac_ct_CC = gcc
ac_ct_CXX = g++
am__include = include
am__leading_dot = .
am__quote =
am__tar = $${TAR-tar} chof - "$$tardir"
am__untar = $${TAR-tar} xf -
bindir = ${exec_prefix}/bin
build = i686-pc-linux-gnu
build_alias =
build_cpu = i686
build_os = linux-gnu
build_vendor = pc
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
exec_prefix = ${prefix}
host = i686-pc-linux-gnu
host_alias =
host_cpu = i686
host_os = linux-gnu
host_vendor = pc
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /root/03_day/valgrind-3.11.0/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = $(MKDIR_P)
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /usr/local
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
srcdir = .
sysconfdir = ${prefix}/etc
target_alias =
top_build_prefix = ../../../
top_builddir = ../../..
top_srcdir = ../../..
inplacedir = $(top_builddir)/.in_place
#----------------------------------------------------------------------------
# Flags
#----------------------------------------------------------------------------
# Baseline flags for all compilations. Aim here is to maximise
# performance and get whatever useful warnings we can out of gcc.
# -fno-builtin is important for defeating LLVM's idiom recognition
# that somehow causes VG_(memset) to get into infinite recursion.
AM_CFLAGS_BASE = -O2 -g -std=gnu99 -Wall -Wmissing-prototypes -Wshadow \
-Wpointer-arith -Wstrict-prototypes -Wmissing-declarations \
-Wcast-align -Wcast-qual -Wwrite-strings \
-Wempty-body -Wformat \
-Wformat-security -Wignored-qualifiers \
-Wmissing-parameter-type -Wold-style-declaration \
-fno-stack-protector \
-fno-strict-aliasing -fno-builtin $(am__append_1)
AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-fpic -fno-builtin -fno-ipa-icf
# These flags are used for building the preload shared objects (PSOs).
# The aim is to give reasonable performance but also to have good
# stack traces, since users often see stack traces extending
# into (and through) the preloads. Also, we must use any
# -mpreferred-stack-boundary flag to build the preload shared
# objects, since that risks misaligning the client's stack and
# results in segfaults like (eg) #324050.
#AM_CFLAGS_PSO_BASE = -dynamic \
# -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
# -fpic -fPIC -fno-builtin -fno-ipa-icf
# Flags for specific targets.
#
# Nb: the AM_CPPFLAGS_* values are suitable for building tools and auxprogs.
# For building the core, coregrind/Makefile.am files add some extra things.
AM_CPPFLAGS_X86_LINUX = \
-I$(top_srcdir) \
-I$(top_srcdir)/include \
-I$(top_srcdir)/VEX/pub \
-I$(top_builddir)/VEX/pub \
-DVGA_x86=1 \
-DVGO_linux=1 \
-DVGP_x86_linux=1 \
-DVGPV_x86_linux_vanilla=1
#AM_CPPFLAGS_ = \
# -I$(top_srcdir) \
# -I$(top_srcdir)/include \
# -I$(top_srcdir)/VEX/pub \
# -I$(top_builddir)/VEX/pub \
# -DVGA_=1 \
# -DVGO_linux=1 \
# -DVGP__linux=1 \
# -DVGPV__linux_vanilla=1
AM_FLAG_M3264_X86_LINUX = -m32
AM_CFLAGS_X86_LINUX = -m32 -mpreferred-stack-boundary=2 \
$(AM_CFLAGS_BASE) -fomit-frame-pointer
AM_CFLAGS_PSO_X86_LINUX = -m32 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_X86_LINUX = -m32 -g
AM_FLAG_M3264_AMD64_LINUX = -m64
AM_CFLAGS_AMD64_LINUX = -m64 \
$(AM_CFLAGS_BASE) -fomit-frame-pointer
AM_CFLAGS_PSO_AMD64_LINUX = -m64 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_AMD64_LINUX = -m64 -g
AM_FLAG_M3264_PPC32_LINUX = -m32
AM_CFLAGS_PPC32_LINUX = -m32 $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_PPC32_LINUX = -m32 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_PPC32_LINUX = -m32 -g
AM_FLAG_M3264_PPC64BE_LINUX = -m64
AM_CFLAGS_PPC64BE_LINUX = -m64 $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_PPC64BE_LINUX = -m64 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_PPC64BE_LINUX = -m64 -g
AM_FLAG_M3264_PPC64LE_LINUX = -m64
AM_CFLAGS_PPC64LE_LINUX = -m64 $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_PPC64LE_LINUX = -m64 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_PPC64LE_LINUX = -m64 -g
AM_FLAG_M3264_ARM_LINUX = -m32
AM_CFLAGS_ARM_LINUX = -m32 \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
AM_CFLAGS_PSO_ARM_LINUX = -m32 $(AM_CFLAGS_BASE) \
-marm -mcpu=cortex-a8 $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_ARM_LINUX = -m32 \
-marm -mcpu=cortex-a8 -g
AM_FLAG_M3264_ARM64_LINUX = -m64
AM_CFLAGS_ARM64_LINUX = -m64 $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_ARM64_LINUX = -m64 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_ARM64_LINUX = -m64 -g
AM_FLAG_M3264_X86_DARWIN = -arch i386
AM_CFLAGS_X86_DARWIN = $(WERROR) -arch i386 $(AM_CFLAGS_BASE) \
-mmacosx-version-min=10.5 \
-fno-stack-protector -fno-pic -fno-PIC
AM_CFLAGS_PSO_X86_DARWIN = $(AM_CFLAGS_X86_DARWIN) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_X86_DARWIN = -arch i386 -g
AM_FLAG_M3264_AMD64_DARWIN = -arch x86_64
AM_CFLAGS_AMD64_DARWIN = $(WERROR) -arch x86_64 $(AM_CFLAGS_BASE) \
-mmacosx-version-min=10.5 -fno-stack-protector
AM_CFLAGS_PSO_AMD64_DARWIN = $(AM_CFLAGS_AMD64_DARWIN) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_AMD64_DARWIN = -arch x86_64 -g
AM_FLAG_M3264_S390X_LINUX = -m64
AM_CFLAGS_S390X_LINUX = -m64 $(AM_CFLAGS_BASE) -fomit-frame-pointer
AM_CFLAGS_PSO_S390X_LINUX = -m64 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_S390X_LINUX = -m64 -g -mzarch -march=z900
AM_FLAG_M3264_MIPS32_LINUX = -m32
AM_CFLAGS_MIPS32_LINUX = -m32 $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_MIPS32_LINUX = -m32 $(AM_CFLAGS_BASE) \
$(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_MIPS32_LINUX = -m32 -g
AM_FLAG_M3264_MIPS64_LINUX = -m64
AM_CFLAGS_MIPS64_LINUX = -m64 $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_MIPS64_LINUX = -m64 $(AM_CFLAGS_BASE) \
$(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_MIPS64_LINUX = -m64 -g
AM_CFLAGS_TILEGX_LINUX = -m64 $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_TILEGX_LINUX = -m64 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_FLAG_M3264_X86_SOLARIS = -m32
AM_CFLAGS_X86_SOLARIS = -m32 -mpreferred-stack-boundary=2 \
$(AM_CFLAGS_BASE) -fomit-frame-pointer
AM_CFLAGS_PSO_X86_SOLARIS = -m32 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_X86_SOLARIS = -m32 -g -D_ASM
AM_FLAG_M3264_AMD64_SOLARIS = -m64
AM_CFLAGS_AMD64_SOLARIS = -m64 \
$(AM_CFLAGS_BASE) -fomit-frame-pointer
AM_CFLAGS_PSO_AMD64_SOLARIS = -m64 $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_AMD64_SOLARIS = -m64 -g -D_ASM
# Flags for the primary target. These must be used to build the
# regtests and performance tests. In fact, these must be used to
# build anything which is built only once on a dual-arch build.
#
AM_FLAG_M3264_PRI = $(AM_FLAG_M3264_X86_LINUX)
AM_CPPFLAGS_PRI = $(AM_CPPFLAGS_X86_LINUX)
AM_CFLAGS_PRI = $(AM_CFLAGS_X86_LINUX)
AM_CCASFLAGS_PRI = $(AM_CCASFLAGS_X86_LINUX)
AM_FLAG_M3264_SEC =
#AM_FLAG_M3264_SEC = $(AM_FLAG_M3264_)
# Baseline link flags for making vgpreload shared objects.
#
PRELOAD_LDFLAGS_COMMON_LINUX = -nodefaultlibs -shared \
-Wl,-z,interpose,-z,initfirst $(am__append_3)
PRELOAD_LDFLAGS_COMMON_DARWIN = -dynamic -dynamiclib -all_load
PRELOAD_LDFLAGS_COMMON_SOLARIS = -nodefaultlibs -shared \
-Wl,-z,interpose,-z,initfirst $(am__append_2)
PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m32
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m64
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m32
PRELOAD_LDFLAGS_PPC64BE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m64
PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m64
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m32
PRELOAD_LDFLAGS_ARM64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m64
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
PRELOAD_LDFLAGS_S390X_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m64
PRELOAD_LDFLAGS_MIPS32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m32
PRELOAD_LDFLAGS_MIPS64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m64
PRELOAD_LDFLAGS_TILEGX_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) -m64
PRELOAD_LDFLAGS_X86_SOLARIS = $(PRELOAD_LDFLAGS_COMMON_SOLARIS) -m32
PRELOAD_LDFLAGS_AMD64_SOLARIS = $(PRELOAD_LDFLAGS_COMMON_SOLARIS) -m64
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include \
-I$(top_srcdir)/coregrind -I$(top_builddir)/include \
-I$(top_srcdir)/VEX/pub -I$(top_builddir)/VEX/pub \
-DVGA_x86=1 -DVGO_linux=1 \
-DVGP_x86_linux=1 \
-DVGPV_x86_linux_vanilla=1 \
$(am__append_4)
# Nb: Tools need to augment these flags with an arch-selection option, such
# as $(AM_FLAG_M3264_PRI).
AM_CFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
-fno-stack-protector $(am__append_5) $(am__append_6)
AM_CXXFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
-fno-stack-protector $(am__append_7)
# Include AM_CPPFLAGS in AM_CCASFLAGS to allow for older versions of
# automake; see comments in Makefile.all.am for more detail.
AM_CCASFLAGS = $(AM_CPPFLAGS) -ffreestanding $(am__append_8)
#noinst_DSYMS = $(check_PROGRAMS)
dist_noinst_SCRIPTS = filter_stderr
EXTRA_DIST = \
clone_test.stderr.exp \
clone_test.post.exp \
clone_test.vgtest \
complex_rep.stderr.exp \
complex_rep.vgtest \
fldcw_check.stderr.exp \
fldcw_check.vgtest \
ll.stderr.exp \
ll.stdout.exp \
ll.post.exp \
ll.vgtest \
million.stderr.exp \
million.post.exp \
million.vgtest \
rep_prefix.stderr.exp \
rep_prefix.vgtest
clone_test_SOURCES = clone_test.S
complex_rep_SOURCES = complex_rep.S
fldcw_check_SOURCES = fldcw_check.S
million_SOURCES = million.S
rep_prefix_SOURCES = rep_prefix.S
ll_SOURCES = ll.S
all: all-am
.SUFFIXES:
.SUFFIXES: .S .o .obj
$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(top_srcdir)/Makefile.tool-tests.am $(top_srcdir)/Makefile.all.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign exp-bbv/tests/amd64-linux/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign exp-bbv/tests/amd64-linux/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_srcdir)/Makefile.tool-tests.am $(top_srcdir)/Makefile.all.am:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: # $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
clean-checkPROGRAMS:
-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
clone_test$(EXEEXT): $(clone_test_OBJECTS) $(clone_test_DEPENDENCIES) $(EXTRA_clone_test_DEPENDENCIES)
@rm -f clone_test$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(clone_test_OBJECTS) $(clone_test_LDADD) $(LIBS)
complex_rep$(EXEEXT): $(complex_rep_OBJECTS) $(complex_rep_DEPENDENCIES) $(EXTRA_complex_rep_DEPENDENCIES)
@rm -f complex_rep$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(complex_rep_OBJECTS) $(complex_rep_LDADD) $(LIBS)
fldcw_check$(EXEEXT): $(fldcw_check_OBJECTS) $(fldcw_check_DEPENDENCIES) $(EXTRA_fldcw_check_DEPENDENCIES)
@rm -f fldcw_check$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fldcw_check_OBJECTS) $(fldcw_check_LDADD) $(LIBS)
ll$(EXEEXT): $(ll_OBJECTS) $(ll_DEPENDENCIES) $(EXTRA_ll_DEPENDENCIES)
@rm -f ll$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ll_OBJECTS) $(ll_LDADD) $(LIBS)
million$(EXEEXT): $(million_OBJECTS) $(million_DEPENDENCIES) $(EXTRA_million_DEPENDENCIES)
@rm -f million$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(million_OBJECTS) $(million_LDADD) $(LIBS)
rep_prefix$(EXEEXT): $(rep_prefix_OBJECTS) $(rep_prefix_DEPENDENCIES) $(EXTRA_rep_prefix_DEPENDENCIES)
@rm -f rep_prefix$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(rep_prefix_OBJECTS) $(rep_prefix_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
include ./$(DEPDIR)/clone_test.Po
include ./$(DEPDIR)/complex_rep.Po
include ./$(DEPDIR)/fldcw_check.Po
include ./$(DEPDIR)/ll.Po
include ./$(DEPDIR)/million.Po
include ./$(DEPDIR)/rep_prefix.Po
.S.o:
$(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
$(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
$(am__mv) $$depbase.Tpo $$depbase.Po
# $(AM_V_CPPAS)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) \
# $(AM_V_CPPAS_no)$(CPPASCOMPILE) -c -o $@ $<
.S.obj:
$(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
$(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
$(am__mv) $$depbase.Tpo $$depbase.Po
# $(AM_V_CPPAS)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) \
# $(AM_V_CPPAS_no)$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: ctags-am
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
$(MAKE) $(AM_MAKEFLAGS) check-local
check: check-am
all-am: Makefile $(SCRIPTS)
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-checkPROGRAMS clean-generic clean-local mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am:
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am:
.MAKE: check-am install-am install-strip
.PHONY: CTAGS GTAGS TAGS all all-am check check-am check-local clean \
clean-checkPROGRAMS clean-generic clean-local cscopelist-am \
ctags ctags-am distclean distclean-compile distclean-generic \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am
# This used to be required when Vex had a handwritten Makefile. It
# shouldn't be needed any more, though.
#----------------------------------------------------------------------------
# noinst_PROGRAMS and noinst_DSYMS targets
#----------------------------------------------------------------------------
# On Darwin, for a program 'p', the DWARF debug info is stored in the
# directory 'p.dSYM'. This must be generated after the executable is
# created, with 'dsymutil p'. We could redefine LINK with a script that
# executes 'dsymutil' after linking, but that's a pain. Instead we use this
# hook so that every time "make check" is run, we subsequently invoke
# 'dsymutil' on all the executables that lack a .dSYM directory, or that are
# newer than their corresponding .dSYM directory.
build-noinst_DSYMS: $(noinst_DSYMS)
for f in $(noinst_DSYMS); do \
if [ ! -e $$f.dSYM -o $$f -nt $$f.dSYM ] ; then \
echo "dsymutil $$f"; \
dsymutil $$f; \
fi; \
done
# This is used by coregrind/Makefile.am and Makefile.tool.am for doing
# "in-place" installs. It copies $(noinst_PROGRAMS) into $inplacedir.
# It needs to be depended on by an 'all-local' rule.
inplace-noinst_PROGRAMS: $(noinst_PROGRAMS)
mkdir -p $(inplacedir); \
for f in $(noinst_PROGRAMS) ; do \
rm -f $(inplacedir)/$$f; \
ln -f -s ../$(subdir)/$$f $(inplacedir); \
done
# Similar to inplace-noinst_PROGRAMS
inplace-noinst_DSYMS: build-noinst_DSYMS
mkdir -p $(inplacedir); \
for f in $(noinst_DSYMS); do \
rm -f $(inplacedir)/$$f.dSYM; \
ln -f -s ../$(subdir)/$$f.dSYM $(inplacedir); \
done
# This is used by coregrind/Makefile.am and by <tool>/Makefile.am for doing
# "make install". It copies $(noinst_PROGRAMS) into $prefix/lib/valgrind/.
# It needs to be depended on by an 'install-exec-local' rule.
install-noinst_PROGRAMS: $(noinst_PROGRAMS)
$(mkinstalldirs) $(DESTDIR)$(pkglibdir); \
for f in $(noinst_PROGRAMS); do \
$(INSTALL_PROGRAM) $$f $(DESTDIR)$(pkglibdir); \
done
# This is used by coregrind/Makefile.am and by <tool>/Makefile.am for doing
# "make uninstall". It removes $(noinst_PROGRAMS) from $prefix/lib/valgrind/.
# It needs to be depended on by an 'uninstall-local' rule.
uninstall-noinst_PROGRAMS:
for f in $(noinst_PROGRAMS); do \
rm -f $(DESTDIR)$(pkglibdir)/$$f; \
done
# Similar to install-noinst_PROGRAMS.
# Nb: we don't use $(INSTALL_PROGRAM) here because it doesn't work with
# directories. XXX: not sure whether the resulting permissions will be
# correct when using 'cp -R'...
install-noinst_DSYMS: build-noinst_DSYMS
$(mkinstalldirs) $(DESTDIR)$(pkglibdir); \
for f in $(noinst_DSYMS); do \
cp -R $$f.dSYM $(DESTDIR)$(pkglibdir); \
done
# Similar to uninstall-noinst_PROGRAMS.
uninstall-noinst_DSYMS:
for f in $(noinst_DSYMS); do \
rm -f $(DESTDIR)$(pkglibdir)/$$f.dSYM; \
done
# This needs to be depended on by a 'clean-local' rule.
clean-noinst_DSYMS:
for f in $(noinst_DSYMS); do \
rm -rf $$f.dSYM; \
done
check-local: build-noinst_DSYMS
clean-local: clean-noinst_DSYMS
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
@@ -0,0 +1,42 @@
include $(top_srcdir)/Makefile.tool-tests.am
dist_noinst_SCRIPTS = filter_stderr
check_PROGRAMS = \
million rep_prefix fldcw_check complex_rep clone_test
EXTRA_DIST = \
clone_test.stderr.exp \
clone_test.post.exp \
clone_test.vgtest \
complex_rep.stderr.exp \
complex_rep.vgtest \
fldcw_check.stderr.exp \
fldcw_check.vgtest \
ll.stderr.exp \
ll.stdout.exp \
ll.post.exp \
ll.vgtest \
million.stderr.exp \
million.post.exp \
million.vgtest \
rep_prefix.stderr.exp \
rep_prefix.vgtest
AM_CCASFLAGS += -ffreestanding
LDFLAGS += -nostartfiles -nodefaultlibs
clone_test_SOURCES = clone_test.S
complex_rep_SOURCES = complex_rep.S
fldcw_check_SOURCES = fldcw_check.S
million_SOURCES = million.S
rep_prefix_SOURCES = rep_prefix.S
# To compile the ll testcase, the compiler needs to support -Xassembler
# ICC does not do that
if !COMPILER_IS_ICC
AM_CCASFLAGS += -Xassembler -I$(top_srcdir)/exp-bbv/tests
check_PROGRAMS += ll
ll_SOURCES = ll.S
endif
@@ -0,0 +1,986 @@
# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
# This file is used for tool tests, and also in perf/Makefile.am.
# This file should be included (directly or indirectly) by every
# Makefile.am that builds programs. And also the top-level Makefile.am.
#----------------------------------------------------------------------------
# Global stuff
#----------------------------------------------------------------------------
VPATH = @srcdir@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(top_srcdir)/Makefile.tool-tests.am \
$(top_srcdir)/Makefile.all.am $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am $(dist_noinst_SCRIPTS) \
$(top_srcdir)/depcomp
@COMPILER_IS_CLANG_TRUE@am__append_1 = -Wno-cast-align -Wno-self-assign \
@COMPILER_IS_CLANG_TRUE@ -Wno-tautological-compare
@SOLARIS_XPG_SYMBOLS_PRESENT_TRUE@am__append_2 = -Wl,-M,$(top_srcdir)/solaris/vgpreload-solaris.mapfile
# The Android toolchain includes all kinds of stdlib helpers present in
# bionic which is bad because we are not linking with it and the Android
# linker will panic.
@VGCONF_PLATVARIANT_IS_ANDROID_TRUE@am__append_3 = -nostdlib
@VGCONF_HAVE_PLATFORM_SEC_TRUE@am__append_4 = -DVGA_SEC_@VGCONF_ARCH_SEC@=1 \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGP_SEC_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1
# Make sure that all test programs have threaded errno.
@VGCONF_OS_IS_SOLARIS_TRUE@am__append_5 = -D_REENTRANT
@COMPILER_IS_CLANG_TRUE@am__append_6 = -Wno-format-extra-args \
@COMPILER_IS_CLANG_TRUE@ -Wno-literal-range \
@COMPILER_IS_CLANG_TRUE@ -Wno-tautological-constant-out-of-range-compare \
@COMPILER_IS_CLANG_TRUE@ -Wno-self-assign -Wno-string-plus-int \
@COMPILER_IS_CLANG_TRUE@ -Wno-uninitialized -Wno-unused-value # \
@COMPILER_IS_CLANG_TRUE@ clang 3.0.0
@COMPILER_IS_CLANG_TRUE@am__append_7 = -Wno-unused-private-field # drd/tests/tsan_unittest.cpp
check_PROGRAMS = million$(EXEEXT) rep_prefix$(EXEEXT) \
fldcw_check$(EXEEXT) complex_rep$(EXEEXT) clone_test$(EXEEXT) \
$(am__EXEEXT_1)
# To compile the ll testcase, the compiler needs to support -Xassembler
# ICC does not do that
@COMPILER_IS_ICC_FALSE@am__append_8 = -Xassembler -I$(top_srcdir)/exp-bbv/tests
@COMPILER_IS_ICC_FALSE@am__append_9 = ll
subdir = exp-bbv/tests/amd64-linux
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
@COMPILER_IS_ICC_FALSE@am__EXEEXT_1 = ll$(EXEEXT)
am_clone_test_OBJECTS = clone_test.$(OBJEXT)
clone_test_OBJECTS = $(am_clone_test_OBJECTS)
clone_test_LDADD = $(LDADD)
am_complex_rep_OBJECTS = complex_rep.$(OBJEXT)
complex_rep_OBJECTS = $(am_complex_rep_OBJECTS)
complex_rep_LDADD = $(LDADD)
am_fldcw_check_OBJECTS = fldcw_check.$(OBJEXT)
fldcw_check_OBJECTS = $(am_fldcw_check_OBJECTS)
fldcw_check_LDADD = $(LDADD)
am__ll_SOURCES_DIST = ll.S
@COMPILER_IS_ICC_FALSE@am_ll_OBJECTS = ll.$(OBJEXT)
ll_OBJECTS = $(am_ll_OBJECTS)
ll_LDADD = $(LDADD)
am_million_OBJECTS = million.$(OBJEXT)
million_OBJECTS = $(am_million_OBJECTS)
million_LDADD = $(LDADD)
am_rep_prefix_OBJECTS = rep_prefix.$(OBJEXT)
rep_prefix_OBJECTS = $(am_rep_prefix_OBJECTS)
rep_prefix_LDADD = $(LDADD)
SCRIPTS = $(dist_noinst_SCRIPTS)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
AM_V_CPPAS = $(am__v_CPPAS_@AM_V@)
am__v_CPPAS_ = $(am__v_CPPAS_@AM_DEFAULT_V@)
am__v_CPPAS_0 = @echo " CPPAS " $@;
am__v_CPPAS_1 =
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
am__v_CC_0 = @echo " CC " $@;
am__v_CC_1 =
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(clone_test_SOURCES) $(complex_rep_SOURCES) \
$(fldcw_check_SOURCES) $(ll_SOURCES) $(million_SOURCES) \
$(rep_prefix_SOURCES)
DIST_SOURCES = $(clone_test_SOURCES) $(complex_rep_SOURCES) \
$(fldcw_check_SOURCES) $(am__ll_SOURCES_DIST) \
$(million_SOURCES) $(rep_prefix_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CFLAGS = @BOOST_CFLAGS@
BOOST_LIBS = @BOOST_LIBS@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CFLAGS_MPI = @CFLAGS_MPI@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFAULT_SUPP = @DEFAULT_SUPP@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIFF = @DIFF@
DIS_PATH = @DIS_PATH@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
FLAG_FSANITIZE = @FLAG_FSANITIZE@
FLAG_M32 = @FLAG_M32@
FLAG_M64 = @FLAG_M64@
FLAG_MIPS32 = @FLAG_MIPS32@
FLAG_MIPS64 = @FLAG_MIPS64@
FLAG_MLONG_DOUBLE_128 = @FLAG_MLONG_DOUBLE_128@
FLAG_MMMX = @FLAG_MMMX@
FLAG_MSSE = @FLAG_MSSE@
FLAG_NO_BUILD_ID = @FLAG_NO_BUILD_ID@
FLAG_OCTEON = @FLAG_OCTEON@
FLAG_OCTEON2 = @FLAG_OCTEON2@
FLAG_T_TEXT = @FLAG_T_TEXT@
FLAG_UNLIMITED_INLINE_UNIT_GROWTH = @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@
FLAG_W_CAST_ALIGN = @FLAG_W_CAST_ALIGN@
FLAG_W_CAST_QUAL = @FLAG_W_CAST_QUAL@
FLAG_W_EMPTY_BODY = @FLAG_W_EMPTY_BODY@
FLAG_W_EXTRA = @FLAG_W_EXTRA@
FLAG_W_FORMAT = @FLAG_W_FORMAT@
FLAG_W_FORMAT_SECURITY = @FLAG_W_FORMAT_SECURITY@
FLAG_W_FORMAT_SIGNEDNESS = @FLAG_W_FORMAT_SIGNEDNESS@
FLAG_W_IGNORED_QUALIFIERS = @FLAG_W_IGNORED_QUALIFIERS@
FLAG_W_MISSING_PARAMETER_TYPE = @FLAG_W_MISSING_PARAMETER_TYPE@
FLAG_W_NO_INFINITE_RECURSION = @FLAG_W_NO_INFINITE_RECURSION@
FLAG_W_NO_MEMSET_TRANSPOSED_ARGS = @FLAG_W_NO_MEMSET_TRANSPOSED_ARGS@
FLAG_W_NO_MISMATCHED_NEW_DELETE = @FLAG_W_NO_MISMATCHED_NEW_DELETE@
FLAG_W_NO_NONNULL = @FLAG_W_NO_NONNULL@
FLAG_W_NO_OVERFLOW = @FLAG_W_NO_OVERFLOW@
FLAG_W_NO_POINTER_SIGN = @FLAG_W_NO_POINTER_SIGN@
FLAG_W_NO_STATIC_LOCAL_IN_INLINE = @FLAG_W_NO_STATIC_LOCAL_IN_INLINE@
FLAG_W_NO_UNINITIALIZED = @FLAG_W_NO_UNINITIALIZED@
FLAG_W_NO_UNUSED_FUNCTION = @FLAG_W_NO_UNUSED_FUNCTION@
FLAG_W_OLD_STYLE_DECLARATION = @FLAG_W_OLD_STYLE_DECLARATION@
FLAG_W_WRITE_STRINGS = @FLAG_W_WRITE_STRINGS@
GDB = @GDB@
GLIBC_VERSION = @GLIBC_VERSION@
GREP = @GREP@
HWCAP_HAS_ALTIVEC = @HWCAP_HAS_ALTIVEC@
HWCAP_HAS_DFP = @HWCAP_HAS_DFP@
HWCAP_HAS_HTM = @HWCAP_HAS_HTM@
HWCAP_HAS_ISA_2_05 = @HWCAP_HAS_ISA_2_05@
HWCAP_HAS_ISA_2_06 = @HWCAP_HAS_ISA_2_06@
HWCAP_HAS_ISA_2_07 = @HWCAP_HAS_ISA_2_07@
HWCAP_HAS_VSX = @HWCAP_HAS_VSX@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@ -nostartfiles -nodefaultlibs
LDFLAGS_MPI = @LDFLAGS_MPI@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIB_UBSAN = @LIB_UBSAN@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MPI_CC = @MPI_CC@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PREFERRED_STACK_BOUNDARY_2 = @PREFERRED_STACK_BOUNDARY_2@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VALT_LOAD_ADDRESS_PRI = @VALT_LOAD_ADDRESS_PRI@
VALT_LOAD_ADDRESS_SEC = @VALT_LOAD_ADDRESS_SEC@
VERSION = @VERSION@
VGCONF_ARCH_PRI = @VGCONF_ARCH_PRI@
VGCONF_ARCH_SEC = @VGCONF_ARCH_SEC@
VGCONF_OS = @VGCONF_OS@
VGCONF_PLATFORM_PRI_CAPS = @VGCONF_PLATFORM_PRI_CAPS@
VGCONF_PLATFORM_SEC_CAPS = @VGCONF_PLATFORM_SEC_CAPS@
VGCONF_PLATVARIANT = @VGCONF_PLATVARIANT@
VG_TMPDIR = @VG_TMPDIR@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
inplacedir = $(top_builddir)/.in_place
#----------------------------------------------------------------------------
# Flags
#----------------------------------------------------------------------------
# Baseline flags for all compilations. Aim here is to maximise
# performance and get whatever useful warnings we can out of gcc.
# -fno-builtin is important for defeating LLVM's idiom recognition
# that somehow causes VG_(memset) to get into infinite recursion.
AM_CFLAGS_BASE = -O2 -g -std=gnu99 -Wall -Wmissing-prototypes -Wshadow \
-Wpointer-arith -Wstrict-prototypes -Wmissing-declarations \
@FLAG_W_CAST_ALIGN@ @FLAG_W_CAST_QUAL@ @FLAG_W_WRITE_STRINGS@ \
@FLAG_W_EMPTY_BODY@ @FLAG_W_FORMAT@ @FLAG_W_FORMAT_SIGNEDNESS@ \
@FLAG_W_FORMAT_SECURITY@ @FLAG_W_IGNORED_QUALIFIERS@ \
@FLAG_W_MISSING_PARAMETER_TYPE@ @FLAG_W_OLD_STYLE_DECLARATION@ \
@FLAG_FNO_STACK_PROTECTOR@ @FLAG_FSANITIZE@ \
-fno-strict-aliasing -fno-builtin $(am__append_1)
@VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
@VGCONF_OS_IS_DARWIN_FALSE@ -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
# These flags are used for building the preload shared objects (PSOs).
# The aim is to give reasonable performance but also to have good
# stack traces, since users often see stack traces extending
# into (and through) the preloads. Also, we must use any
# -mpreferred-stack-boundary flag to build the preload shared
# objects, since that risks misaligning the client's stack and
# results in segfaults like (eg) #324050.
@VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
@VGCONF_OS_IS_DARWIN_TRUE@ -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
@VGCONF_OS_IS_DARWIN_TRUE@ -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
# Flags for specific targets.
#
# Nb: the AM_CPPFLAGS_* values are suitable for building tools and auxprogs.
# For building the core, coregrind/Makefile.am files add some extra things.
AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@ = \
-I$(top_srcdir) \
-I$(top_srcdir)/include \
-I$(top_srcdir)/VEX/pub \
-I$(top_builddir)/VEX/pub \
-DVGA_@VGCONF_ARCH_PRI@=1 \
-DVGO_@VGCONF_OS@=1 \
-DVGP_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1 \
-DVGPV_@VGCONF_ARCH_PRI@_@VGCONF_OS@_@VGCONF_PLATVARIANT@=1
@VGCONF_HAVE_PLATFORM_SEC_TRUE@AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@ = \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -I$(top_srcdir) \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -I$(top_srcdir)/include \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -I$(top_srcdir)/VEX/pub \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -I$(top_builddir)/VEX/pub \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGA_@VGCONF_ARCH_SEC@=1 \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGO_@VGCONF_OS@=1 \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGP_@VGCONF_ARCH_SEC@_@VGCONF_OS@=1 \
@VGCONF_HAVE_PLATFORM_SEC_TRUE@ -DVGPV_@VGCONF_ARCH_SEC@_@VGCONF_OS@_@VGCONF_PLATVARIANT@=1
AM_FLAG_M3264_X86_LINUX = @FLAG_M32@
AM_CFLAGS_X86_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY_2@ \
$(AM_CFLAGS_BASE) -fomit-frame-pointer
AM_CFLAGS_PSO_X86_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_X86_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_AMD64_LINUX = @FLAG_M64@
AM_CFLAGS_AMD64_LINUX = @FLAG_M64@ \
$(AM_CFLAGS_BASE) -fomit-frame-pointer
AM_CFLAGS_PSO_AMD64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_AMD64_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_PPC32_LINUX = @FLAG_M32@
AM_CFLAGS_PPC32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_PPC32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
AM_FLAG_M3264_PPC64BE_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64BE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_PPC64BE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_PPC64BE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ \
$(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
AM_CFLAGS_PSO_ARM_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) \
-marm -mcpu=cortex-a8 $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_ARM_LINUX = @FLAG_M32@ \
-marm -mcpu=cortex-a8 -g
AM_FLAG_M3264_ARM64_LINUX = @FLAG_M64@
AM_CFLAGS_ARM64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_ARM64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_ARM64_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_X86_DARWIN = -arch i386
AM_CFLAGS_X86_DARWIN = $(WERROR) -arch i386 $(AM_CFLAGS_BASE) \
-mmacosx-version-min=10.5 \
-fno-stack-protector -fno-pic -fno-PIC
AM_CFLAGS_PSO_X86_DARWIN = $(AM_CFLAGS_X86_DARWIN) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_X86_DARWIN = -arch i386 -g
AM_FLAG_M3264_AMD64_DARWIN = -arch x86_64
AM_CFLAGS_AMD64_DARWIN = $(WERROR) -arch x86_64 $(AM_CFLAGS_BASE) \
-mmacosx-version-min=10.5 -fno-stack-protector
AM_CFLAGS_PSO_AMD64_DARWIN = $(AM_CFLAGS_AMD64_DARWIN) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_AMD64_DARWIN = -arch x86_64 -g
AM_FLAG_M3264_S390X_LINUX = @FLAG_M64@
AM_CFLAGS_S390X_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) -fomit-frame-pointer
AM_CFLAGS_PSO_S390X_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_S390X_LINUX = @FLAG_M64@ -g -mzarch -march=z900
AM_FLAG_M3264_MIPS32_LINUX = @FLAG_M32@
AM_CFLAGS_MIPS32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) @FLAG_MIPS32@
AM_CFLAGS_PSO_MIPS32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) @FLAG_MIPS32@ \
$(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_MIPS32_LINUX = @FLAG_M32@ -g @FLAG_MIPS32@
AM_FLAG_M3264_MIPS64_LINUX = @FLAG_M64@
AM_CFLAGS_MIPS64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) @FLAG_MIPS64@
AM_CFLAGS_PSO_MIPS64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) @FLAG_MIPS64@ \
$(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_MIPS64_LINUX = @FLAG_M64@ -g @FLAG_MIPS64@
AM_CFLAGS_TILEGX_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
AM_CFLAGS_PSO_TILEGX_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_FLAG_M3264_X86_SOLARIS = @FLAG_M32@
AM_CFLAGS_X86_SOLARIS = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY_2@ \
$(AM_CFLAGS_BASE) -fomit-frame-pointer
AM_CFLAGS_PSO_X86_SOLARIS = @FLAG_M32@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_X86_SOLARIS = @FLAG_M32@ -g -D_ASM
AM_FLAG_M3264_AMD64_SOLARIS = @FLAG_M64@
AM_CFLAGS_AMD64_SOLARIS = @FLAG_M64@ \
$(AM_CFLAGS_BASE) -fomit-frame-pointer
AM_CFLAGS_PSO_AMD64_SOLARIS = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_AMD64_SOLARIS = @FLAG_M64@ -g -D_ASM
# Flags for the primary target. These must be used to build the
# regtests and performance tests. In fact, these must be used to
# build anything which is built only once on a dual-arch build.
#
AM_FLAG_M3264_PRI = $(AM_FLAG_M3264_@VGCONF_PLATFORM_PRI_CAPS@)
AM_CPPFLAGS_PRI = $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
AM_CFLAGS_PRI = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
AM_CCASFLAGS_PRI = $(AM_CCASFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
@VGCONF_HAVE_PLATFORM_SEC_FALSE@AM_FLAG_M3264_SEC =
@VGCONF_HAVE_PLATFORM_SEC_TRUE@AM_FLAG_M3264_SEC = $(AM_FLAG_M3264_@VGCONF_PLATFORM_SEC_CAPS@)
# Baseline link flags for making vgpreload shared objects.
#
PRELOAD_LDFLAGS_COMMON_LINUX = -nodefaultlibs -shared \
-Wl,-z,interpose,-z,initfirst $(am__append_3)
PRELOAD_LDFLAGS_COMMON_DARWIN = -dynamic -dynamiclib -all_load
PRELOAD_LDFLAGS_COMMON_SOLARIS = -nodefaultlibs -shared \
-Wl,-z,interpose,-z,initfirst $(am__append_2)
PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_PPC64BE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_ARM64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
PRELOAD_LDFLAGS_S390X_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_MIPS32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
PRELOAD_LDFLAGS_MIPS64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_TILEGX_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
PRELOAD_LDFLAGS_X86_SOLARIS = $(PRELOAD_LDFLAGS_COMMON_SOLARIS) @FLAG_M32@
PRELOAD_LDFLAGS_AMD64_SOLARIS = $(PRELOAD_LDFLAGS_COMMON_SOLARIS) @FLAG_M64@
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include \
-I$(top_srcdir)/coregrind -I$(top_builddir)/include \
-I$(top_srcdir)/VEX/pub -I$(top_builddir)/VEX/pub \
-DVGA_@VGCONF_ARCH_PRI@=1 -DVGO_@VGCONF_OS@=1 \
-DVGP_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1 \
-DVGPV_@VGCONF_ARCH_PRI@_@VGCONF_OS@_@VGCONF_PLATVARIANT@=1 \
$(am__append_4)
# Nb: Tools need to augment these flags with an arch-selection option, such
# as $(AM_FLAG_M3264_PRI).
AM_CFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
@FLAG_FNO_STACK_PROTECTOR@ $(am__append_5) $(am__append_6)
AM_CXXFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
@FLAG_FNO_STACK_PROTECTOR@ $(am__append_7)
# Include AM_CPPFLAGS in AM_CCASFLAGS to allow for older versions of
# automake; see comments in Makefile.all.am for more detail.
AM_CCASFLAGS = $(AM_CPPFLAGS) -ffreestanding $(am__append_8)
@VGCONF_OS_IS_DARWIN_TRUE@noinst_DSYMS = $(check_PROGRAMS)
dist_noinst_SCRIPTS = filter_stderr
EXTRA_DIST = \
clone_test.stderr.exp \
clone_test.post.exp \
clone_test.vgtest \
complex_rep.stderr.exp \
complex_rep.vgtest \
fldcw_check.stderr.exp \
fldcw_check.vgtest \
ll.stderr.exp \
ll.stdout.exp \
ll.post.exp \
ll.vgtest \
million.stderr.exp \
million.post.exp \
million.vgtest \
rep_prefix.stderr.exp \
rep_prefix.vgtest
clone_test_SOURCES = clone_test.S
complex_rep_SOURCES = complex_rep.S
fldcw_check_SOURCES = fldcw_check.S
million_SOURCES = million.S
rep_prefix_SOURCES = rep_prefix.S
@COMPILER_IS_ICC_FALSE@ll_SOURCES = ll.S
all: all-am
.SUFFIXES:
.SUFFIXES: .S .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.tool-tests.am $(top_srcdir)/Makefile.all.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign exp-bbv/tests/amd64-linux/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign exp-bbv/tests/amd64-linux/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_srcdir)/Makefile.tool-tests.am $(top_srcdir)/Makefile.all.am:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
clean-checkPROGRAMS:
-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
clone_test$(EXEEXT): $(clone_test_OBJECTS) $(clone_test_DEPENDENCIES) $(EXTRA_clone_test_DEPENDENCIES)
@rm -f clone_test$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(clone_test_OBJECTS) $(clone_test_LDADD) $(LIBS)
complex_rep$(EXEEXT): $(complex_rep_OBJECTS) $(complex_rep_DEPENDENCIES) $(EXTRA_complex_rep_DEPENDENCIES)
@rm -f complex_rep$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(complex_rep_OBJECTS) $(complex_rep_LDADD) $(LIBS)
fldcw_check$(EXEEXT): $(fldcw_check_OBJECTS) $(fldcw_check_DEPENDENCIES) $(EXTRA_fldcw_check_DEPENDENCIES)
@rm -f fldcw_check$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fldcw_check_OBJECTS) $(fldcw_check_LDADD) $(LIBS)
ll$(EXEEXT): $(ll_OBJECTS) $(ll_DEPENDENCIES) $(EXTRA_ll_DEPENDENCIES)
@rm -f ll$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ll_OBJECTS) $(ll_LDADD) $(LIBS)
million$(EXEEXT): $(million_OBJECTS) $(million_DEPENDENCIES) $(EXTRA_million_DEPENDENCIES)
@rm -f million$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(million_OBJECTS) $(million_LDADD) $(LIBS)
rep_prefix$(EXEEXT): $(rep_prefix_OBJECTS) $(rep_prefix_DEPENDENCIES) $(EXTRA_rep_prefix_DEPENDENCIES)
@rm -f rep_prefix$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(rep_prefix_OBJECTS) $(rep_prefix_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/complex_rep.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fldcw_check.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ll.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/million.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rep_prefix.Po@am__quote@
.S.o:
@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@am__fastdepCCAS_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ $<
.S.obj:
@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
@am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
@am__fastdepCCAS_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: ctags-am
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
$(MAKE) $(AM_MAKEFLAGS) check-local
check: check-am
all-am: Makefile $(SCRIPTS)
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-checkPROGRAMS clean-generic clean-local mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am:
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am:
.MAKE: check-am install-am install-strip
.PHONY: CTAGS GTAGS TAGS all all-am check check-am check-local clean \
clean-checkPROGRAMS clean-generic clean-local cscopelist-am \
ctags ctags-am distclean distclean-compile distclean-generic \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am
# This used to be required when Vex had a handwritten Makefile. It
# shouldn't be needed any more, though.
#----------------------------------------------------------------------------
# noinst_PROGRAMS and noinst_DSYMS targets
#----------------------------------------------------------------------------
# On Darwin, for a program 'p', the DWARF debug info is stored in the
# directory 'p.dSYM'. This must be generated after the executable is
# created, with 'dsymutil p'. We could redefine LINK with a script that
# executes 'dsymutil' after linking, but that's a pain. Instead we use this
# hook so that every time "make check" is run, we subsequently invoke
# 'dsymutil' on all the executables that lack a .dSYM directory, or that are
# newer than their corresponding .dSYM directory.
build-noinst_DSYMS: $(noinst_DSYMS)
for f in $(noinst_DSYMS); do \
if [ ! -e $$f.dSYM -o $$f -nt $$f.dSYM ] ; then \
echo "dsymutil $$f"; \
dsymutil $$f; \
fi; \
done
# This is used by coregrind/Makefile.am and Makefile.tool.am for doing
# "in-place" installs. It copies $(noinst_PROGRAMS) into $inplacedir.
# It needs to be depended on by an 'all-local' rule.
inplace-noinst_PROGRAMS: $(noinst_PROGRAMS)
mkdir -p $(inplacedir); \
for f in $(noinst_PROGRAMS) ; do \
rm -f $(inplacedir)/$$f; \
ln -f -s ../$(subdir)/$$f $(inplacedir); \
done
# Similar to inplace-noinst_PROGRAMS
inplace-noinst_DSYMS: build-noinst_DSYMS
mkdir -p $(inplacedir); \
for f in $(noinst_DSYMS); do \
rm -f $(inplacedir)/$$f.dSYM; \
ln -f -s ../$(subdir)/$$f.dSYM $(inplacedir); \
done
# This is used by coregrind/Makefile.am and by <tool>/Makefile.am for doing
# "make install". It copies $(noinst_PROGRAMS) into $prefix/lib/valgrind/.
# It needs to be depended on by an 'install-exec-local' rule.
install-noinst_PROGRAMS: $(noinst_PROGRAMS)
$(mkinstalldirs) $(DESTDIR)$(pkglibdir); \
for f in $(noinst_PROGRAMS); do \
$(INSTALL_PROGRAM) $$f $(DESTDIR)$(pkglibdir); \
done
# This is used by coregrind/Makefile.am and by <tool>/Makefile.am for doing
# "make uninstall". It removes $(noinst_PROGRAMS) from $prefix/lib/valgrind/.
# It needs to be depended on by an 'uninstall-local' rule.
uninstall-noinst_PROGRAMS:
for f in $(noinst_PROGRAMS); do \
rm -f $(DESTDIR)$(pkglibdir)/$$f; \
done
# Similar to install-noinst_PROGRAMS.
# Nb: we don't use $(INSTALL_PROGRAM) here because it doesn't work with
# directories. XXX: not sure whether the resulting permissions will be
# correct when using 'cp -R'...
install-noinst_DSYMS: build-noinst_DSYMS
$(mkinstalldirs) $(DESTDIR)$(pkglibdir); \
for f in $(noinst_DSYMS); do \
cp -R $$f.dSYM $(DESTDIR)$(pkglibdir); \
done
# Similar to uninstall-noinst_PROGRAMS.
uninstall-noinst_DSYMS:
for f in $(noinst_DSYMS); do \
rm -f $(DESTDIR)$(pkglibdir)/$$f.dSYM; \
done
# This needs to be depended on by a 'clean-local' rule.
clean-noinst_DSYMS:
for f in $(noinst_DSYMS); do \
rm -rf $$f.dSYM; \
done
check-local: build-noinst_DSYMS
clean-local: clean-noinst_DSYMS
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
@@ -0,0 +1,95 @@
# count for ~1 million instructions thread 1
# count for ~2 million instructions thread 2
# count for additional 500 million each before exit
.globl _start
_start:
#################################################
# 1000 cycles in initial thread #
#################################################
xor %rax,%rax
mov $499,%rcx # load counter
initial_loop:
dec %rcx # repeat count times
jnz initial_loop
#####################################################
# Spawn a thread! #
#####################################################
clone:
mov $56,%rax # clone syscall
# Note, clone syscall is different than the glibc implementation
# int clone (flags, stack_pointer,parent_tidptr,child_tidptr,tls)
# Flags in
#/usr/include/bits/sched.h
# CLONE_THREAD 0x10000
# CLONE_SIGHAND 0x800
# CLONE_VM 0x100
# above must be called together
# Below required for Valgrind
# CLONE_FS 0x200
# CLONE_FILES 0x400
mov $0x10f00,%rdi
mov $(new_stack+4096),%rsi # new stack
mov $0,%rdx # args (none)
syscall
cmp $0,%rax # are we in new thread?
jz thread2 # if so, jump to thrad2
###############################################
# thread1 #
###############################################
thread1:
mov $499997,%rcx # load counter
thread1_loop:
dec %rcx # repeat count times
jnz thread1_loop
xor %rdi,%rdi # we return 0
jmp exit
thread2:
mov $999997,%rcx # load counter
thread2_loop:
dec %rcx # repeat count times
jnz thread2_loop
mov $5,%rdi # we return 5
#================================
# Exit
#================================
exit:
# count an additional 500 million
mov $250000,%rcx # load counter
exit_loop:
dec %rcx # repeat count times
jnz exit_loop
actual_exit:
mov $60,%rax # put exit syscall number (60) in rax
syscall
.bss
.lcomm new_stack,4096
@@ -0,0 +1,58 @@
T 4 996 5 2 3 98991
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 1001 2 3 98994
T 100000
T 100000
T 100000
T 100000
# Thread 1
# Total intervals: 15 (Interval Size 100000)
# Total instructions: 1501007
# Total reps: 0
# Unique reps: 0
# Total fldcw instructions: 0
T 2 3 99996
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 100000
T 99996 4
T 100000
T 100000
T 100000
T 100000
T 99998 2
# Thread 2
# Total intervals: 25 (Interval Size 100000)
# Total instructions: 2500001
# Total reps: 0
# Unique reps: 0
# Total fldcw instructions: 0
@@ -0,0 +1,12 @@
# Thread 1
# Total intervals: 15 (Interval Size 100000)
# Total instructions: 1501007
# Total reps: 0
# Unique reps: 0
# Total fldcw instructions: 0
# Thread 2
# Total intervals: 25 (Interval Size 100000)
# Total instructions: 2500001
# Total reps: 0
# Unique reps: 0
# Total fldcw instructions: 0
@@ -0,0 +1,5 @@
prog: clone_test
vgopts: --interval-size=100000 --bb-out-file=clone_test.out.bb --pc-out-file=clone_test.out.pc
post: cat clone_test.out.bb clone_test.out.bb.2 | ../filter_bb
cleanup: rm clone_test.out.bb
@@ -0,0 +1,58 @@
# When trying (and failing) to instrument at the basic block level
# I thought up a lot of corner-cases in the rep code. This tries
# to catch some of them
# Performance counters give us 8207 insns
# 11 + 8*1024 + 3 = 8206
.globl _start
_start:
cld # we want these to happen forward
mov $0xfeb131978,%rax # value to store
# test back-to-back rep/stosb's
mov $1024,%rcx
mov $buffer1, %rdi # set destination
rep stosb # store 1024 times
rep stosb # should store 0 times
rep stosb # should store 0 times
# test stosb where cx is 0
xor %rcx,%rcx
mov $buffer1, %rdi # set destination
rep stosb # should not load at all
# test rep inside of a loop
mov $1024, %rbx
rep_loop:
mov $1024,%rcx
mov $buffer1, %rdi # set destination
rep stosb
mov $1024,%rcx
mov $buffer1, %rdi # set destination
rep stosb
dec %rbx
jnz rep_loop
#================================
# Exit
#================================
exit:
mov $60,%rax
xor %rdi,%rdi # we return 0
syscall # and exit
.bss
.lcomm buffer1, 16384
@@ -0,0 +1,6 @@
# Thread 1
# Total intervals: 0 (Interval Size 100000)
# Total instructions: 8206
# Total reps: 2100228
# Unique reps: 2052
# Total fldcw instructions: 0
@@ -0,0 +1,4 @@
prog: complex_rep
vgopts: --interval-size=100000 --bb-out-file=complex_rep.out.bb
cleanup: rm complex_rep.out.bb
@@ -0,0 +1,4 @@
#! /bin/sh
../filter_stderr
@@ -0,0 +1,166 @@
.globl _start
_start:
# This code tests for the fldcw "load floating point command word"
# instruction. On most x86 processors the retired_instruction
# performance counter counts this as one instruction. However,
# on Pentium 4 systems it counts as two. Therefore this can
# affect BBV results on such a system.
# fldcw is most often used to set the rouding mode when doing
# floating point to integer conversions
# It is encoded as "d9 /5" which means
# 1101 1001 xx10 1yyy
# Where xx is the "mod" which will be 00, 01, or 10 indicating offset
# and yyy is the register field
# these are instructions with similar encodings to fldcw
# that can cause false positives if the test isn't explicit enough
similar:
fld1 # d9 e8
fldl2t # d9 e9
fldl2e # d9 ea
fldpi # d9 eb
fldlg2 # d9 ec
fldln2 # d9 ed
fldz # d9 ee
# check some varied ways of calling fldcw
# offset on stack
stack:
sub $8,%rsp # allocate space on stack
fnstcw 2(%rsp)
fldcw 2(%rsp)
add $8,%rsp # restore stack
# 64-bit register
sixtyfour_reg:
fnstcw cw
mov $cw,%rax
fldcw 0(%rax) # rax
mov $cw,%rbx
fldcw 0(%rbx) # rbx
mov $cw,%rcx
fldcw 0(%rcx) # rcx
mov $cw,%rdx
fldcw 0(%rdx) # rdx
# 32-bit register
# Note! The assembler that comes with SuSE 9.1
# cannot assemble 32-bit fldcw on 64-bit systems
# Hence the need to hand-code them
thirtytwo_reg:
fnstcw cw
mov $cw,%eax
# fldcw 0(%eax) # eax
.byte 0x67,0xd9,0x28
mov $cw,%ebx
# fldcw 0(%ebx) # ebx
.byte 0x67,0xd9,0x2b
mov $cw,%ecx
# fldcw 0(%ecx) # ecx
.byte 0x67,0xd9,0x29
mov $cw,%edx
# fldcw 0(%edx) # edx
.byte 0x67,0xd9,0x2a
# register + 8-bit offset
eight_bit:
mov $cw,%eax
sub $32,%eax
# fldcw 32(%eax) # eax + 8 bit offset
.byte 0x67,0xd9,0x68,0x20
mov %eax,%ebx
# fldcw 32(%ebx) # ebx + 8 bit offset
.byte 0x67,0xd9,0x6b,0x20
mov %eax,%ecx
# fldcw 32(%ecx) # ecx + 8 bit offset
.byte 0x67,0xd9,0x69,0x20
mov %eax,%edx
# fldcw 32(%edx) # edx + 8 bit offset
.byte 0x67,0xd9,0x6a,0x20
# register + 32-bit offset
thirtytwo_bit:
mov $cw,%eax
sub $30000,%eax
# fldcw 30000(%eax) # eax + 16 bit offset
.byte 0x67,0xd9,0xa8,0x30,0x75,0x00,0x00
mov %eax,%ebx
# fldcw 30000(%ebx) # ebx + 16 bit offset
.byte 0x67,0xd9,0xab,0x30,0x75,0x00,0x00
mov %eax,%ecx
# fldcw 30000(%ecx) # ecx + 16 bit offset
.byte 0x67,0xd9,0xa9,0x30,0x75,0x00,0x00
mov %eax,%edx
# fldcw 30000(%edx) # edx + 16 bit offset
.byte 0x67,0xd9,0xaa,0x30,0x75,0x00,0x00
# check an fp/integer conversion
# in a loop to give a bigger count
mov $1024,%rcx
big_loop:
fldl three # load value onto fp stack
fnstcw saved_cw # store control word to mem
movzwl saved_cw, %eax # load cw from mem, zero extending
movb $12, %ah # set cw for "round to zero"
movw %ax, cw # store back to memory
fldcw cw # save new rounding mode
fistpl result # save stack value as integer to mem
fldcw saved_cw # restore old cw
loop big_loop # loop to make the count more obvious
movl result, %ebx # sanity check to see if the
cmp $3,%rbx # result is the expected one
je exit
print_error:
mov $1,%rax # write syscall
mov $1,%rdi # stdout
mov $error,%rsi # string
mov $22,%rdx # length of string
syscall
exit:
xor %rdi, %rdi # return 0
mov $60, %rax # SYSCALL_EXIT
syscall
.data
saved_cw: .long 0
cw: .long 0
result: .long 0
three: .long 0 # a floating point 3.0
.long 1074266112
error: .asciz "Error! Wrong result!\n"
@@ -0,0 +1,6 @@
# Thread 1
# Total intervals: 0 (Interval Size 10000)
# Total instructions: 9270
# Total reps: 0
# Unique reps: 0
# Total fldcw instructions: 2053
@@ -0,0 +1,4 @@
prog: fldcw_check
vgopts: --interval-size=10000 --bb-out-file=fldcw_check.out.bb
cleanup: rm fldcw_check.out.bb
@@ -0,0 +1,648 @@
#
# linux_logo in x86_64 assembly language
# based on the code from ll_asm-0.36
#
# By Vince Weaver <vince _at_ deater.net>
#
# Modified to remove non-deterministic system calls
# And to avoid reading from /proc
#
.include "logo.include"
# offsets into the results returned by the uname syscall
.equ U_SYSNAME,0
.equ U_NODENAME,65
.equ U_RELEASE,65*2
.equ U_VERSION,(65*3)
.equ U_MACHINE,(65*4)
.equ U_DOMAINNAME,65*5
# offset into the results returned by the sysinfo syscall
.equ S_TOTALRAM,32
# Sycscalls
.equ SYSCALL_EXIT, 60
.equ SYSCALL_READ, 0
.equ SYSCALL_WRITE, 1
.equ SYSCALL_OPEN, 2
.equ SYSCALL_CLOSE, 3
.equ SYSCALL_SYSINFO, 99
.equ SYSCALL_UNAME, 63
#
.equ STDIN,0
.equ STDOUT,1
.equ STDERR,2
.globl _start
_start:
#=========================
# PRINT LOGO
#=========================
# LZSS decompression algorithm implementation
# by Stephan Walter 2002, based on LZSS.C by Haruhiko Okumura 1989
# optimized some more by Vince Weaver
# we used to fill the buffer with FREQUENT_CHAR
# but, that only gains us one byte of space in the lzss image.
# the lzss algorithm does automatic RLE... pretty clever
# so we compress with NUL as FREQUENT_CHAR and it is pre-done for us
mov $(N-F), %ebp # R
mov $logo, %esi # %esi points to logo (for lodsb)
mov $out_buffer, %edi # point to out_buffer
push %rdi # save this value for later
xor %ecx, %ecx
decompression_loop:
lodsb # load in a byte
mov $0xff, %bh # re-load top as a hackish 8-bit counter
mov %al, %bl # move in the flags
test_flags:
cmp $logo_end, %esi # have we reached the end?
je done_logo # ! if so, exit
shr $1, %ebx # shift bottom bit into carry flag
jc discrete_char # ! if set, we jump to discrete char
offset_length:
lodsw # get match_length and match_position
mov %eax,%edx # copy to edx
# no need to mask dx, as we do it
# by default in output_loop
shr $(P_BITS),%eax
add $(THRESHOLD+1),%al
mov %al,%cl # cl = (ax >> P_BITS) + THRESHOLD + 1
# (=match_length)
output_loop:
and $POSITION_MASK,%dh # mask it
mov text_buf(%rdx), %al # load byte from text_buf[]
inc %edx # advance pointer in text_buf
store_byte:
stosb # store it
mov %al, text_buf(%rbp) # store also to text_buf[r]
inc %ebp # r++
and $(N-1), %bp # mask r
loop output_loop # repeat until k>j
or %bh,%bh # ! if 0 we shifted through 8 and must
jnz test_flags # re-load flags
jmp decompression_loop
discrete_char:
lodsb # load a byte
inc %ecx # we set ecx to one so byte
# will be output once
# (how do we know ecx is zero?)
jmp store_byte # and cleverly store it
# end of LZSS code
done_logo:
pop %rbp # get out_buffer and keep in bp
mov %ebp,%ecx # move out_buffer to ecx
call write_stdout # print the logo
#
# Setup
#
setup:
mov $strcat,%edx # use rdx as call pointer (smaller op)
#==========================
# PRINT VERSION
#==========================
# push $SYSCALL_UNAME # uname syscall
# pop %rax # in 3 bytes
mov $uname_info,%edi # uname struct (0 extend address)
# syscall # do syscall
mov %ebp,%edi # point %edi to out_buffer
mov $(uname_info+U_SYSNAME),%esi # os-name from uname "Linux"
call *%rdx # call strcat
mov $ver_string,%esi # source is " Version "
call *%rdx # call strcat
push %rsi # save our .txt pointer
mov $(uname_info+U_RELEASE),%esi # version from uname "2.4.1"
call *%rdx # call strcat
pop %rsi # restore .txt pointer
# source is ", Compiled "
call *%rdx # call strcat
push %rsi # store for later
mov $(uname_info+U_VERSION),%esi # compiled date
call *%rdx # call strcat
mov %ebp,%ecx # move out_buffer to ecx
mov $0xa,%ax # store linefeed on end
stosw # and zero
call *%rdx # call strcat
call center_and_print # center and print
#===============================
# Middle-Line
#===============================
middle_line:
#=========
# Load /proc/cpuinfo into buffer
#=========
push %rdx # save call pointer
# push $SYSCALL_OPEN # load 5 [ open() ]
# pop %rax # in 3 bytes
# mov $cpuinfo,%edi # '/proc/cpuinfo'
# xor %esi,%esi # 0 = O_RDONLY <bits/fcntl.h>
# cdq # clear edx in clever way
# syscall # syscall. fd in eax.
# we should check that eax>=0
# mov %eax,%edi # save our fd
# xor %eax,%eax # SYSCALL_READ make== 0
mov $disk_buffer,%esi
# mov $16,%dh # 4096 is maximum size of proc file #)
# we load sneakily by knowing
# 16<<8 = 4096. be sure edx clear
# syscall
# push $SYSCALL_CLOSE # close (to be correct)
# pop %rax
# syscall
#=============
# Number of CPUs
#=============
number_of_cpus:
xor %ebx,%ebx # chip count
# $disk_buffer still in %rsi
bogo_loop:
mov (%rsi), %eax # load 4 bytes into eax
inc %esi # increment pointer
cmp $0,%al # check for end of file
je done_bogo
# Grrr, due to a bug in binutils 2.18.50.0.9
# (which unfortunately shipped with Fedora 10)
# http://sourceware.org/bugzilla/show_bug.cgi?id=6878
# We can't use the apostrophe character
# cmp $('o'<<24+'g'<<16+'o'<<8+'b'),%eax
cmp $(0x6f<<24+0x67<<16+0x6f<<8+0x62),%eax
# "bogo" in little-endian
jne bogo_loop # ! if not equal, keep going
add $2,%ebx # otherwise, we have a bogo
# 2 times too for future magic
jmp bogo_loop
done_bogo:
lea one-6(%rbx,%rbx,2), %esi
# Load into esi
# [one]+(num_cpus*6)
#
# the above multiplies by three
# esi = (ebx+(ebx*2))
# and we double-incremented ebx
# earlier
mov %ebp,%edi # move output buffer to edi
pop %rdx # restore call pointer
call *%rdx # copy it (call strcat)
# mov $' ',%al # print a space
mov $0x20,%al # print a space
stosb
push %rbx
push %rdx # store strcat pointer
#=========
# MHz
#=========
print_mhz:
# mov $('z'<<24+'H'<<16+'M'<<8+' '),%ebx
mov $(0x7a<<24+0x48<<16+0x4d<<8+0x20),%ebx
# find ' MHz' and grab up to .
# we are little endian
# mov $'.',%ah
mov $0x2e,%ah
# below is same as "sub $(strcat-find_string),%edx
# gas won't let us force the one-byte constant
.byte 0x83,0xEA,strcat-find_string
call *%rdx # call find string
mov %ebx,%eax # clever way to get MHz in, sadly
ror $8,%eax # not any smaller than a mov
stosl
#=========
# Chip Name
#=========
chip_name:
# mov $('e'<<24+'m'<<16+'a'<<8+'n'),%ebx
mov $(0x65<<24+0x6d<<16+0x61<<8+0x6e),%ebx
# find 'name\t: ' and grab up to \n
# we are little endian
# mov $' ',%ah
mov $0x20,%ah
call *%rdx # call find_string
stosb
call skip_spaces
pop %rdx
pop %rbx # restore chip count
pop %rsi
call *%rdx # ' Processor'
cmpb $2,%bl
jne print_s
inc %rsi # ! if singular, skip the s
print_s:
call *%rdx # 's, '
push %rsi # restore the values
push %rdx
#========
# RAM
#========
# push %rdi
# push $SYSCALL_SYSINFO # sysinfo() syscall
# pop %rax
# mov $sysinfo_buff,%edi
# syscall
# pop %rdi
# The following has to be a 64 bit load, to support
# Ram > 4GB
mov (sysinfo_buff+S_TOTALRAM),%rax # size in bytes of RAM
shr $20,%rax # divide by 1024*1024 to get M
adc $0, %eax # round
call num_to_ascii
pop %rdx # restore strcat pointer
pop %rsi # print 'M RAM, '
call *%rdx # call strcat
push %rsi
#========
# Bogomips
#========
# mov $('s'<<24+'p'<<16+'i'<<8+'m'),%ebx
mov $(0x73<<24+0x70<<16+0x69<<8+0x6d),%ebx
# find 'mips\t: ' and grab up to \n
mov $0xa,%ah
call find_string
pop %rsi # bogo total follows RAM
call *%rdx # call strcat
push %rsi
mov %ebp,%ecx # point ecx to out_buffer
push %rcx
call center_and_print # center and print
#=================================
# Print Host Name
#=================================
last_line:
mov %ebp,%edi # point to output_buffer
mov $(uname_info+U_NODENAME),%esi # host name from uname()
call *%rdx # call strcat
pop %rcx # ecx is unchanged
call center_and_print # center and print
pop %rcx # (.txt) pointer to default_colors
call write_stdout
#================================
# Exit
#================================
exit:
push $SYSCALL_EXIT # Put exit syscall in rax
pop %rax
xor %edi,%edi # Make return value $0
syscall
#=================================
# FIND_STRING
#=================================
# ah is char to end at
# ebx is 4-char ascii string to look for
# edi points at output buffer
find_string:
mov $disk_buffer-1,%esi # look in cpuinfo buffer
find_loop:
inc %esi
cmpb $0, (%rsi) # are we at EOF?
je done # ! if so, done
cmp (%rsi), %ebx # do the strings match?
jne find_loop # ! if not, loop
# ! if we get this far, we matched
find_colon:
lodsb # repeat till we find colon
cmp $0,%al
je done
# cmp $':',%al
cmp $0x3a,%al
jne find_colon
skip_spaces:
lodsb # skip spaces
cmp $0x20,%al # Loser new intel chips have lots??
je skip_spaces
store_loop:
cmp $0,%al
je done
cmp %ah,%al # is it end string?
je almost_done # ! if so, finish
# cmp $'\n',%al
cmp $0xa,%al
je almost_done
stosb # ! if not store and continue
lodsb
jmp store_loop
almost_done:
movb $0, (%rdi) # replace last value with NUL
done:
ret
#================================
# strcat
#================================
strcat:
lodsb # load a byte from [ds:esi]
stosb # store a byte to [es:edi]
cmp $0,%al # is it zero?
jne strcat # ! if not loop
dec %edi # point to one less than null
ret # return
#==============================
# center_and_print
#==============================
# string to center in ecx
center_and_print:
push %rdx # save strcat pointer
push %rcx # save the string pointer
inc %edi # move to a clear buffer
push %rdi # save for later
# mov $('['<<8+27),%ax # we want to output ^[[
mov $(0x5b<<8+27),%ax # we want to output ^[[
stosw
cdq # clear dx
str_loop2: # find end of string
inc %edx
cmpb $0,(%rcx,%rdx) # repeat till we find zero
jne str_loop2
push $81 # one added to cheat, we don't
# count the trailing '\n'
pop %rax
cmp %eax,%edx # see if we are >=80
jl not_too_big # ! if so, don't center
push $80
pop %rdx
not_too_big:
sub %edx,%eax # subtract size from 80
shr %eax # then divide by 2
call num_to_ascii # print number of spaces
# mov $'C',%al # tack a 'C' on the end
mov $0x43,%al # tack a 'C' on the end
# ah is zero from num_to_ascii
stosw # store C and a NULL
pop %rcx # pop the pointer to ^[[xC
call write_stdout # write to the screen
done_center:
pop %rcx # restore string pointer
# and trickily print the real string
pop %rdx # restore strcat pointer
#================================
# WRITE_STDOUT
#================================
# ecx has string
# eax,ebx,ecx,edx trashed
write_stdout:
push %rdx
push $SYSCALL_WRITE # put 4 in eax (write syscall)
pop %rax # in 3 bytes of code
cdq # clear edx
lea 1(%rdx),%edi # put 1 in ebx (stdout)
# in 3 bytes of code
mov %ecx,%esi
str_loop1:
inc %edx
cmpb $0,(%rcx,%rdx) # repeat till zero
jne str_loop1
syscall # run the syscall
pop %rdx
ret
##############################
# num_to_ascii
##############################
# ax = value to print
# edi points to where we want it
num_to_ascii:
push $10
pop %rbx
xor %ecx,%ecx # clear ecx
div_by_10:
cdq # clear edx
div %ebx # divide
push %rdx # save for later
inc %ecx # add to length counter
or %eax,%eax # was Q zero?
jnz div_by_10 # ! if not divide again
write_out:
pop %rax # restore in reverse order
add $0x30, %al # convert to ASCII
stosb # save digit
loop write_out # loop till done
ret
#===========================================================================
# section .data
#===========================================================================
.data
ver_string: .ascii " Version \0"
compiled_string: .ascii ", Compiled \0"
processor: .ascii " Processor\0"
s_comma: .ascii "s, \0"
ram_comma: .ascii "M RAM, \0"
bogo_total: .ascii " Bogomips Total\n\0"
default_colors: .ascii "\033[0m\n\n\0"
cpuinfo: .ascii "/proc/cpuinfo\0"
one: .ascii "One\0\0\0"
two: .ascii "Two\0\0\0"
three: .ascii "Three\0"
four: .ascii "Four\0"
.include "logo.lzss_new"
disk_buffer:
.ascii "processor : 0\n"
.ascii "vendor_id : GenuineIntel\n"
.ascii "cpu family : 15\n"
.ascii "model : 6\n"
.ascii "model name : Intel(R) Xeon(TM) CPU 3.46GHz\n"
.ascii "stepping : 4\n"
.ascii "cpu MHz : 3200.000\n"
.ascii "cache size : 2048 KB\n"
.ascii "physical id : 0\n"
.ascii "siblings : 2\n"
.ascii "core id : 0\n"
.ascii "cpu cores : 2\n"
.ascii "apicid : 0\n"
.ascii "initial apicid : 0\n"
.ascii "fpu : yes\n"
.ascii "fpu_exception : yes\n"
.ascii "cpuid level : 6\n"
.ascii "wp : yes\n"
.ascii "flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts pni dtes64 monitor ds_cpl vmx est cid cx16 xtpr pdcm lahf_lm tpr_shadow\n"
.ascii "bogomips : 6934.38\n"
.ascii "clflush size : 64\n"
.ascii "cache_alignment : 128\n"
.ascii "address sizes : 36 bits physical, 48 bits virtual\n"
.ascii "power management:\n"
.ascii "\n"
.ascii "processor : 1\n"
.ascii "vendor_id : GenuineIntel\n"
.ascii "cpu family : 15\n"
.ascii "model : 6\n"
.ascii "model name : Intel(R) Xeon(TM) CPU 3.46GHz\n"
.ascii "stepping : 4\n"
.ascii "cpu MHz : 3200.000\n"
.ascii "cache size : 2048 KB\n"
.ascii "physical id : 1\n"
.ascii "siblings : 2\n"
.ascii "core id : 0\n"
.ascii "cpu cores : 2\n"
.ascii "apicid : 4\n"
.ascii "initial apicid : 4\n"
.ascii "fpu : yes\n"
.ascii "fpu_exception : yes\n"
.ascii "cpuid level : 6\n"
.ascii "wp : yes\n"
.ascii "flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts pni dtes64 monitor ds_cpl vmx est cid cx16 xtpr pdcm lahf_lm tpr_shadow\n"
.ascii "bogomips : 6934.13\n"
.ascii "clflush size : 64\n"
.ascii "cache_alignment : 128\n"
.ascii "address sizes : 36 bits physical, 48 bits virtual\n"
.ascii "power management:\n\0"
uname_info:
.ascii "Linux\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
.ascii "domori\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
.ascii "2.6.29\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
.ascii "#1 SMP Mon May 4 09:51:54 EDT 2009\0\0"
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
.ascii "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
sysinfo_buff:
.long 0,0,0,0,0,0,0,0,2048*1024*1024,0,0,0,0,0,0,0
#============================================================================
# section .bss
#============================================================================
.bss
.lcomm text_buf, (N+F-1)
.lcomm out_buffer,16384
@@ -0,0 +1,54 @@
T:1:10 :7:10 :5:38 :2:44 :8:65 :9:662 :4:119 :6:2 :3:51
T:7:5 :5:16 :2:18 :8:52 :9:858 :4:35 :6:1 :3:15
T:7:5 :5:16 :2:18 :8:52 :9:858 :4:35 :6:1 :3:15
T:7:5 :5:14 :2:16 :8:91 :9:863 :4:7 :6:1 :3:3
T:7:5 :5:12 :2:14 :8:78 :9:880 :4:7 :6:1 :3:3
T:7:5 :5:6 :2:8 :8:52 :9:928 :6:1
T:7:5 :5:10 :2:10 :8:65 :9:909 :6:1
T:7:5 :5:14 :2:18 :8:117 :9:845 :6:1
T:5:8 :2:8 :8:52 :9:932
T:7:5 :5:8 :2:10 :8:65 :9:911 :6:1
T:5:8 :2:8 :8:52 :9:932
T:7:5 :5:6 :2:8 :8:52 :9:928 :6:1
T:5:6 :2:6 :8:39 :9:949
T:7:5 :5:6 :2:8 :8:52 :9:928 :6:1
T:5:4 :2:4 :8:26 :9:966
T:7:5 :5:12 :2:14 :8:78 :9:880 :4:7 :6:1 :3:3
T:5:6 :2:6 :8:39 :9:949
T:7:5 :5:8 :2:10 :8:65 :9:911 :6:1
T:7:5 :5:14 :2:16 :8:91 :9:863 :4:7 :6:1 :3:3
T:5:8 :2:8 :8:52 :9:932
T:7:5 :5:10 :2:12 :8:78 :9:894 :6:1
T:7:5 :5:10 :2:12 :8:74 :9:898 :6:1
T:5:12 :2:12 :8:82 :9:894
T:7:5 :5:8 :2:8 :8:39 :9:390 :4:7 :6:1 :3:3 :10:3 :11:9 :12:527
T:12:1000
T:12:1000
T:12:1000
T:12:1000
T:12:1000
T:12:1000
T:12:1000
T:15:5 :18:2 :19:3 :20:2 :21:3 :22:4 :16:281 :17:10 :12:687 :13:1 :14:2
T:23:1 :32:7 :34:351 :33:176 :16:3 :17:2 :24:10 :25:195 :26:4 :27:3 :30:4 :31:11 :11:9 :12:204 :13:2 :14:4 :28:9 :29:5
T:34:666 :33:334
T:34:667 :33:333
T:34:665 :33:333 :35:2
T:34:667 :33:333
T:34:667 :33:333
T:34:666 :33:334
T:34:666 :33:332 :35:2
T:34:357 :33:178 :36:4 :37:8 :38:4 :40:258 :39:173 :16:16 :17:2
T:49:6 :50:2 :51:4 :52:2 :53:1 :54:6 :56:3 :38:4 :40:333 :39:225 :41:39 :42:26 :43:15 :44:46 :45:46 :46:40 :47:60 :48:6 :16:88 :17:4 :28:9 :55:18 :29:17
T:57:4 :38:4 :40:591 :39:395 :16:4 :17:2
T:40:600 :39:400
T:58:2 :59:4 :40:453 :39:303 :41:18 :42:12 :43:6 :44:16 :45:16 :46:14 :47:21 :48:2 :16:68 :17:2 :24:10 :25:53
# Thread 1
# Total intervals: 45 (Interval Size 1000)
# Total instructions: 45639
# Total reps: 0
# Unique reps: 0
# Total fldcw instructions: 0
@@ -0,0 +1,6 @@
# Thread 1
# Total intervals: 45 (Interval Size 1000)
# Total instructions: 45639
# Total reps: 0
# Unique reps: 0
# Total fldcw instructions: 0
@@ -0,0 +1,17 @@
###############################################################################
###############################################################################
##################################################################O#O##########
###############################################################################
###############################################################################
###############################################################################
###############################################################################
###############################################################################
###############################################################################
###############################################################################
###############################################################################
###############################################################################
Linux Version 2.6.29, Compiled #1 SMP Mon May 4 09:51:54 EDT 2009
Two 3200MHz Intel(R) Xeon(TM) Processors, 2048M RAM, 6934.38 Bogomips Total
domori
@@ -0,0 +1,6 @@
prog: ll
prereq: test -x ll
vgopts: --interval-size=1000 --bb-out-file=ll.out.bb
post: cat ll.out.bb
cleanup: rm ll.out.bb
@@ -0,0 +1,22 @@
# count for 1 million instructions
# total is 2 + 1 + 499997*2 + 3
.globl _start
_start:
xor %rcx,%rcx # not needed, pads total to 1M
xor %rax,%rax # not needed, pads total to 1M
mov $499997,%rcx # load counter
test_loop:
dec %rcx # repeat count times
jnz test_loop
#================================
# Exit
#================================
exit:
xor %rdi,%rdi # we return 0
mov $60,%rax # put exit syscall number (60) in rax
syscall
@@ -0,0 +1,18 @@
T:1:5 :2:99996
T:2:100000
T:2:100000
T:2:100000
T:2:100000
T:2:100000
T:2:100000
T:2:100000
T:2:100000
# Thread 1
# Total intervals: 10 (Interval Size 100000)
# Total instructions: 1000000
# Total reps: 0
# Unique reps: 0
# Total fldcw instructions: 0
@@ -0,0 +1,6 @@
# Thread 1
# Total intervals: 10 (Interval Size 100000)
# Total instructions: 1000000
# Total reps: 0
# Unique reps: 0
# Total fldcw instructions: 0
@@ -0,0 +1,5 @@
prog: million
vgopts: --interval-size=100000 --bb-out-file=million.out.bb
post: cat million.out.bb
cleanup: rm million.out.bb
@@ -0,0 +1,347 @@
#
# rep, repe (repz) and repne (repnz) prefixed string instructions
# only count as one instruction, even though they repeat many times
# This test makes sure the bbv plugin counts these instructions properly
# The answer is validated to hw perf counters.
#
.globl _start
_start:
cld # we want these to happen forward
#===============================================
# Some SSE2 instructions start with 0xf2 or 0xf3
# Check for them, to make sure our rep detection
# handles things properly.
# We should check this on x86 too, but then we'd
# have to check for SSE2 capability somehow?
#===================================
false_positives:
movdqu %xmm1,%xmm2
movdqu %xmm2,%xmm1
addsd %xmm1,%xmm2
pause
#===================================
# Check varied order of the size prefix
# with the rep prefix. Older binutils
# did this one way, newer binutils the other
#===================================
size_prefix:
# test 16-bit load
mov $8192, %rcx
mov $buffer1, %rsi # set source
.byte 0x66, 0xf3, 0xad # lodsw
mov $8192, %rcx
mov $buffer1, %rsi # set source
.byte 0xf3, 0x66, 0xad # lodsw
#===================================
# Load and Store Instructions
#===================================
loadstore:
xor %rax, %rax
mov $0xd, %al # set eax to d
# test 8-bit store
mov $16384, %rcx
mov $buffer1, %rdi # set destination
rep stosb # store d 16384 times, auto-increment
# test 8-bit load
mov $16384, %rcx
mov $buffer1, %rsi # set source
rep lodsb # load byte 16384 times, auto-increment
cmp $0xd,%al # if we loaded wrong value
jne print_error # print an error
# test 16-bit store
mov $0x020d,%ax # store 0x020d
mov $8192, %rcx
mov $buffer1, %rdi # set destination
rep stosw # store 8192 times, auto-increment
# test 16-bit load
mov $8192, %rcx
mov $buffer1, %rsi # set source
rep lodsw # load 8192 times, auto-increment
cmp $0x020d,%ax # if we loaded wrong value
jne print_error # print an error
# test 32-bit store
mov $0x0feb1378,%eax # store 0x0feb1378
mov $4096, %rcx
mov $buffer1, %rdi # set destination
rep stosl # store 4096 times, auto-increment
# test 32-bit load
mov $4096, %rcx
mov $buffer1, %rsi # set source
rep lodsl # load 4096 times, auto-increment
cmp $0x0feb1378,%eax # if we loaded wrong value
jne print_error # print an error
# test 64-bit store
mov $0xfeb131978a5a5a5a,%rax
mov $2048, %rcx
mov $buffer1, %rdi # set destination
rep stosq # store 2048 times, auto-increment
# test 64-bit load
mov $2048, %rcx
mov $buffer1, %rsi # set source
rep lodsq # load 2048 times, auto-increment
cmp $0x8a5a5a5a,%eax
# !if we loaded wrong value
jne print_error # print an error
#=============================
# Move instructions
#=============================
moves:
# test 8-bit move
mov $16384, %rcx
mov $buffer1, %rsi
mov $buffer2, %rdi
rep movsb
# test 16-bit move
mov $8192, %rcx
mov $buffer2, %rsi
mov $buffer1, %rdi
rep movsw
# test 32-bit move
mov $4096, %rcx
mov $buffer1, %rsi
mov $buffer2, %rdi
rep movsl
# test 64-bit move
mov $2048, %rcx
mov $buffer1, %rsi
mov $buffer2, %rdi
rep movsq
#==================================
# Compare equal instructions
#==================================
compare_equal:
# first set up the areas to compare
mov $0xa5a5a5a5,%eax
mov $buffer1, %rdi
mov $4096, %rcx
rep stosl
mov $0xa5a5a5a5,%eax
mov $buffer2, %rdi
mov $4096, %rcx
rep stosl
# test 8-bit
mov $buffer1,%rsi
mov $buffer2,%rdi
mov $16384, %rcx
repe cmpsb
jnz print_error
# test 16-bit
mov $buffer1,%rsi
mov $buffer2,%rdi
mov $8192, %rcx
repe cmpsw
jnz print_error
# test 32-bit
mov $buffer1,%rsi
mov $buffer2,%rdi
mov $4096, %rcx
repe cmpsl
jnz print_error
# test 64-bit
mov $buffer1,%rsi
mov $buffer2,%rdi
mov $2048, %rcx
repe cmpsq
jnz print_error
#==================================
# Compare not equal instructions
#==================================
compare_noteq:
# change second buffer
mov $0x5a5a5a5a,%eax
mov $buffer2, %rdi
mov $4096, %rcx
rep stosl
# test 8-bit
mov $buffer1,%rsi
mov $buffer2,%rdi
mov $16384, %rcx
# repne cmpsb FIXME! Not implemented valgrind
# je print_error
# test 16-bit
mov $buffer1,%rsi
mov $buffer2,%rdi
mov $8192, %rcx
# repne cmpsw FIXME! Not implemented valgrind
# je print_error
# test 32-bit
mov $buffer1,%rsi
mov $buffer2,%rdi
mov $4096, %rcx
# repne cmpsl FIXME! Not implemented valgrind
# je print_error
# test 64-bit
mov $buffer1,%rsi
mov $buffer2,%rdi
mov $2048, %rcx
# repne cmpsq FIXME! Not implemented valgrind
# je print_error
#====================================
# Check scan equal instruction
#====================================
scan_eq:
# test 8-bit
mov $0xa5,%al
mov $buffer1,%rdi
mov $16384, %rcx
repe scasb
jnz print_error
# test 16-bit
mov $0xa5a5,%ax
mov $buffer1,%rdi
mov $8192, %rcx
repe scasw
jnz print_error
# test 32-bit
mov $0xa5a5a5a5,%eax
mov $buffer1,%rdi
mov $4096, %rcx
repe scasl
jnz print_error
# test 64-bit
mov $0xa5a5a5a5a5a5a5a5,%rax
mov $buffer1,%rdi
mov $2048, %rcx
repe scasq
jnz print_error
#====================================
# Check scan not-equal instruction
#====================================
# test 8-bit
scan_ne:
mov $0xa5,%al
mov $buffer2,%rdi
mov $16384, %rcx
repne scasb
jz print_error
# test 16-bit
mov $0xa5a5,%ax
mov $buffer2,%rdi
mov $8192, %rcx
repne scasw
jz print_error
# test 32-bit
mov $0xa5a5a5a5,%eax
mov $buffer2,%rdi
mov $4096, %rcx
repne scasl
jz print_error
# test 64-bit
mov $0xa5a5a5a5a5a5a5a5,%rax
mov $buffer2,%rdi
mov $2048, %rcx
repne scasq
jz print_error
jmp exit # no error, skip to exit
print_error:
mov $1, %rax # Write syscall
mov $1, %rdi # print to stdout
mov $error_string, %rsi # string to print
mov $16, %edx # strlen
syscall # call syscall
#================================
# Exit
#================================
exit:
mov $60,%rax
xor %rdi,%rdi # we return 0
syscall # and exit
.data
error_string: .asciz "Error detected!\n"
.bss
.lcomm buffer1, 16384
.lcomm buffer2, 16384
@@ -0,0 +1,6 @@
# Thread 1
# Total intervals: 0 (Interval Size 100000)
# Total instructions: 152
# Total reps: 165917
# Unique reps: 29
# Total fldcw instructions: 0
@@ -0,0 +1,4 @@
prog: rep_prefix
vgopts: --interval-size=100000 --bb-out-file=rep_prefix.out.bb
cleanup: rm rep_prefix.out.bb