dyninst.git
9 years agoAdded stackwalker documentation to the repository
Kevin Roundy [Fri, 29 Oct 2010 18:13:01 +0000 (13:13 -0500)]
Added stackwalker documentation to the repository

9 years agoSmall fix for vxWorks platform.
Ray Chen [Fri, 29 Oct 2010 03:43:54 +0000 (23:43 -0400)]
Small fix for vxWorks platform.

Older 4.x versions of GCC cannot compare const_iters and non-const_iters.

9 years agoshouldRunTest(), contrary to its name, is not idempotent. Reverting "fix" in this...
Bill Williams [Thu, 28 Oct 2010 21:37:31 +0000 (16:37 -0500)]
shouldRunTest(), contrary to its name, is not idempotent.  Reverting "fix" in this area.

9 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Thu, 28 Oct 2010 18:30:16 +0000 (13:30 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

9 years agoHandle SymEval cases where there are overlapping identical inputs.
Andrew Bernat [Thu, 28 Oct 2010 18:09:11 +0000 (13:09 -0500)]
Handle SymEval cases where there are overlapping identical inputs.

9 years agoFix problem in mis-identifying cycles in slices.
Andrew Bernat [Thu, 28 Oct 2010 17:02:48 +0000 (12:02 -0500)]
Fix problem in mis-identifying cycles in slices.

9 years agoppc32_linux fix
Madhavi Krishnan [Thu, 28 Oct 2010 04:16:04 +0000 (23:16 -0500)]
ppc32_linux fix

runTests on ppc32_linux was spinning and spewing
kill signal messages while running the
nightly testsuite. This was
due to a bad while loop which was
running forever. This led to a timeout in
our testsuite. Fixed with iterators.
This should fix build and run
problems in bruckner.

9 years agoParseAPI manual update
Nathan Rosenblum [Wed, 27 Oct 2010 20:21:33 +0000 (15:21 -0500)]
ParseAPI manual update

9 years agoImplements findMain() for ppc32-Linux.
Nathan Rosenblum [Wed, 27 Oct 2010 16:12:07 +0000 (11:12 -0500)]
Implements findMain() for ppc32-Linux.

The location of main is stored in a data structure passed to
__libc_start_main in glibc. The _start code linked at the beginning
of the text section computes the address of this data structure;
this patch uses slicing and SymEval to evaluate this computation
and extract the address of main from the startup structure.

9 years agoAvoid deadlock when recursively parsing tail calls, while ensuring that
Nathan Rosenblum [Tue, 26 Oct 2010 19:11:59 +0000 (14:11 -0500)]
Avoid deadlock when recursively parsing tail calls, while ensuring that
the return status of the [tail-]calling function is properly updated.

Also use a more efficient lookup for the "non returning by name" test.

9 years agofix for build fix
Bill Williams [Wed, 27 Oct 2010 19:29:33 +0000 (14:29 -0500)]
fix for build fix

9 years agoWindows build fix.
Bill Williams [Wed, 27 Oct 2010 15:25:18 +0000 (10:25 -0500)]
Windows build fix.

9 years agoBetter return status labeling for shared funcs and Rose input sanitizing
Kevin Roundy [Tue, 26 Oct 2010 22:39:01 +0000 (17:39 -0500)]
Better return status labeling for shared funcs and Rose input sanitizing

If two functions share code, and function A parses into an already parsed function B,
we can be sure that B's return status is the same as function A's if B is contained
in A.  As of this commit, we assign B's return status to A if A parses into B's entry point.
This commit also sanitizes the pushf instruction so that it can be passed into Rose.

9 years agoMake -cpumem work with getrusage() data on a per-test basis, with output added to...
Bill Williams [Tue, 26 Oct 2010 19:12:26 +0000 (14:12 -0500)]
Make -cpumem work with getrusage() data on a per-test basis, with output added to the database driver.

9 years agoFix for bug 1141: bad register from fld ST0, foo with a REX prefix.
Bill Williams [Tue, 26 Oct 2010 19:09:27 +0000 (14:09 -0500)]
Fix for bug 1141: bad register from fld ST0, foo with a REX prefix.

9 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Tue, 26 Oct 2010 18:42:16 +0000 (13:42 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

9 years agoPowerPC slicing updates
Andrew Bernat [Tue, 26 Oct 2010 18:36:07 +0000 (13:36 -0500)]
PowerPC slicing updates

9 years agoFix two bugs in Dyninst's exec handling code.
Daniel McNulty [Mon, 25 Oct 2010 17:14:56 +0000 (12:14 -0500)]
Fix two bugs in Dyninst's exec handling code.

Both of these bugs were reported by the Open SpeedShop folks when
using Dyninst from the openssd daemon. They existed in both Dyninst 6.1
and GIT HEAD.

The first bug occurs when a multithread capable process exec's an executable
that is not multithread capable. We were incorrectly assuming that the exec'd
process was still multithread capable.

The second bug was observed when a multithread capable process exec's an
executable that is also multithread capable. The bug was that the tramp guard
AST was being cached across exec's and results in asserts in code generation
because the tramp guard variable created during mulitthreaded initialization
doesn't match the variable maintained by the tramp guard AST. The fix is to
clear the cached the tramp guard AST on exec.

9 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Daniel McNulty [Mon, 25 Oct 2010 14:03:27 +0000 (09:03 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

9 years agoUntested verbose accounting code didn't compile
Nathan Rosenblum [Thu, 21 Oct 2010 15:55:02 +0000 (10:55 -0500)]
Untested verbose accounting code didn't compile

9 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Emily Jacobson [Wed, 20 Oct 2010 18:05:16 +0000 (13:05 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

9 years agoAdded missing std:: namespace specifiers.
Emily Jacobson [Wed, 20 Oct 2010 17:09:44 +0000 (12:09 -0500)]
Added missing std:: namespace specifiers.

9 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Daniel McNulty [Tue, 19 Oct 2010 20:15:42 +0000 (15:15 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

9 years agoPower jump table parsing
Madhavi Krishnan [Tue, 19 Oct 2010 19:24:09 +0000 (14:24 -0500)]
Power jump table parsing

1) Extensions to parseAPI(IA_powerDetails) to
find jump tables in ppc32 code.
The addi-addis combination instructions can
be anywhere in the function before the indirect
jump - not necessarily in the same block as the
indirect jump instruction.
The jump table start address is stored in got
section. For shared libraries, this is filled by
the dynamic loader via a relocation entry. Hence,
we should find the relocation entry corresponding
to the table start address to find the table in
rodata section.
2) symtabAPI: Relocation entries are added to
the corresponding DT_REL sections (rel.dyn and
rel.plt) in addition to the target region of the
relocations (plt section). This enables us to
get a list of relocations in a particular ELF
section.

9 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Kevin Roundy [Tue, 19 Oct 2010 18:50:43 +0000 (13:50 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

9 years agoAdded support for "callpath sensitive" backward slicing.
Emily Jacobson [Tue, 19 Oct 2010 16:51:18 +0000 (11:51 -0500)]
Added support for "callpath sensitive" backward slicing.

Various backward slicing bug fixes.

Added 2 new EdgePredicates: Interproc and SingleContextOrInterproc.

9 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Kevin Roundy [Tue, 19 Oct 2010 14:16:10 +0000 (09:16 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

Conflicts:
parseAPI/doc/parseapi.pdf

9 years agoparseapi doc and codeRange fix
Kevin Roundy [Mon, 18 Oct 2010 21:00:00 +0000 (16:00 -0500)]
parseapi doc and codeRange fix

9 years agoBug 1139 fix
Madhavi Krishnan [Mon, 18 Oct 2010 17:23:56 +0000 (12:23 -0500)]
Bug 1139 fix

Test1_33 was failing in rewriter mode because
test1_33_globalVariable1 was initialized in the
bss section. The rewriter cannot modify variables
in the bss section. This commit initializes the
global variable to a non-zero value so that it
is not initialized in the bss section. This commit
fixes bug 1139

9 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Todd Frederick [Mon, 18 Oct 2010 16:33:01 +0000 (11:33 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

9 years agoWorkarounds for old buggy versions of PGF (for ParseAPI manual front page)
Nathan Rosenblum [Mon, 18 Oct 2010 15:40:47 +0000 (10:40 -0500)]
Workarounds for old buggy versions of PGF (for ParseAPI manual front page)

9 years agoMerge branch 'master' into devel
Todd Frederick [Mon, 18 Oct 2010 15:36:17 +0000 (10:36 -0500)]
Merge branch 'master' into devel

9 years agodataflowAPI: allow stack analysis to be disabled for AssignmentConverter
Todd Frederick [Mon, 18 Oct 2010 15:34:36 +0000 (10:34 -0500)]
dataflowAPI: allow stack analysis to be disabled for AssignmentConverter

9 years agoPPC64 Linux PLT call stack fix
Ray Chen [Mon, 18 Oct 2010 04:32:01 +0000 (00:32 -0400)]
PPC64 Linux PLT call stack fix

We must store the caller's TOC into 40(r1) when replacing function calls
because the original call (to a PLT stub) would have stored the TOC there,
and subsequent code may expect to restore it.

Also removes an unnecessary dynamic_cast from parsing code.

9 years agoFixes an off-by-one error in Power decoder.
Ray Chen [Mon, 18 Oct 2010 04:29:42 +0000 (00:29 -0400)]
Fixes an off-by-one error in Power decoder.

9 years agoVarious documentation updates to the ParseAPI manual
Kevin Roundy [Fri, 15 Oct 2010 23:49:41 +0000 (18:49 -0500)]
Various documentation updates to the ParseAPI manual

9 years agoTestsuite changes
Madhavi Krishnan [Fri, 15 Oct 2010 21:09:25 +0000 (16:09 -0500)]
Testsuite changes

Added rewriter mode to test1_28, test1_33, test1_34 and init_fini_callback
on power, x86 and x86_64 linux platforms.

9 years agoImplements the ProcControlAPI::ThreadPool::find function.
Daniel McNulty [Thu, 14 Oct 2010 21:54:03 +0000 (16:54 -0500)]
Implements the ProcControlAPI::ThreadPool::find function.

9 years agoModify ParseThat to return non-zero on mutator failure (or crash).
Andrew Bernat [Thu, 14 Oct 2010 21:44:45 +0000 (16:44 -0500)]
Modify ParseThat to return non-zero on mutator failure (or crash).

9 years agoMark CodeObjects unparseable when no valid code regions exist
Nathan Rosenblum [Thu, 14 Oct 2010 15:14:22 +0000 (10:14 -0500)]
Mark CodeObjects unparseable when no valid code regions exist

9 years agoUpdated ParseAPI manual
Nathan Rosenblum [Tue, 12 Oct 2010 19:16:06 +0000 (14:16 -0500)]
Updated ParseAPI manual

9 years agoPrevent duplicate return edge creation in Function::blocks_int
Nathan Rosenblum [Tue, 12 Oct 2010 22:00:50 +0000 (17:00 -0500)]
Prevent duplicate return edge creation in Function::blocks_int

9 years agoImplement PPC/Linux trap handler.
Andrew Bernat [Tue, 12 Oct 2010 15:26:12 +0000 (10:26 -0500)]
Implement PPC/Linux trap handler.

9 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Mon, 11 Oct 2010 22:33:03 +0000 (17:33 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

Conflicts:
dataflowAPI/src/Absloc.C

9 years agoFix stack comparison bug.
Andrew Bernat [Mon, 11 Oct 2010 22:31:11 +0000 (17:31 -0500)]
Fix stack comparison bug.

9 years agoFix stack comparison bug.
Andrew Bernat [Mon, 11 Oct 2010 22:30:10 +0000 (17:30 -0500)]
Fix stack comparison bug.

Conflicts:

dataflowAPI/h/slicing.h
dataflowAPI/src/slicing.C

9 years agoRearranged code for better ordering of if statements.
Emily Jacobson [Mon, 11 Oct 2010 18:14:50 +0000 (13:14 -0500)]
Rearranged code for better ordering of if statements.

9 years agojumpSize() fix: take the absolute value of a signed value, not an unsigned. This...
Bill Williams [Fri, 8 Oct 2010 20:48:42 +0000 (16:48 -0400)]
jumpSize() fix: take the absolute value of a signed value, not an unsigned.  This was breaking backwards branching on POWER.

9 years agoRemove assert.
Bill Williams [Thu, 7 Oct 2010 15:53:52 +0000 (11:53 -0400)]
Remove assert.

9 years agoTreat blrl as a return, rather than a call, since in practice it is used as a linking...
Bill Williams [Thu, 7 Oct 2010 15:53:17 +0000 (11:53 -0400)]
Treat blrl as a return, rather than a call, since in practice it is used as a linking return.

9 years agoIgnore regions with zero memory size cross-platform.
Bill Williams [Thu, 7 Oct 2010 15:52:50 +0000 (11:52 -0400)]
Ignore regions with zero memory size cross-platform.

9 years agoAllow jump tables to use add-with-carry as well as add.
Bill Williams [Thu, 7 Oct 2010 15:52:25 +0000 (11:52 -0400)]
Allow jump tables to use add-with-carry as well as add.

9 years agoMake syscall read/write sets correct, rather than overapproximated.
Bill Williams [Thu, 7 Oct 2010 15:50:26 +0000 (11:50 -0400)]
Make syscall read/write sets correct, rather than overapproximated.

9 years agoStackwalkerAPI compilation fixes on BlueGene
Matthew Legendre [Fri, 8 Oct 2010 19:12:38 +0000 (14:12 -0500)]
StackwalkerAPI compilation fixes on BlueGene

9 years agoCompilation fix for VS 2010
Matthew Legendre [Fri, 8 Oct 2010 18:47:39 +0000 (13:47 -0500)]
Compilation fix for VS 2010

9 years agoHandle tail calls to incompletely parsed functions correctly.
Andrew Bernat [Fri, 8 Oct 2010 15:22:56 +0000 (10:22 -0500)]
Handle tail calls to incompletely parsed functions correctly.

9 years agoBuild fix for windows: don't explicitly instantiate a template with an explicit speci...
Bill Williams [Thu, 7 Oct 2010 19:53:21 +0000 (14:53 -0500)]
Build fix for windows: don't explicitly instantiate a template with an explicit specialization.

9 years agoAdd xmm8-xmm15 liveness information/decoding.
Bill Williams [Wed, 6 Oct 2010 16:21:28 +0000 (11:21 -0500)]
Add xmm8-xmm15 liveness information/decoding.

9 years agoAdd missing instructionAPI makefile for VxWorks/ppc.
Ray Chen [Thu, 7 Oct 2010 04:40:40 +0000 (00:40 -0400)]
Add missing instructionAPI makefile for VxWorks/ppc.

9 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Wed, 6 Oct 2010 20:12:57 +0000 (15:12 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

9 years agoChange parseThat instrumentation levels to be non-cumulative.
Andrew Bernat [Wed, 6 Oct 2010 20:12:23 +0000 (15:12 -0500)]
Change parseThat instrumentation levels to be non-cumulative.

9 years agoReimplement trap handler to avoid clobbering XMM registers
Andrew Bernat [Wed, 6 Oct 2010 20:11:27 +0000 (15:11 -0500)]
Reimplement trap handler to avoid clobbering XMM registers

9 years agoFix error that caused us to incorrectly compute incoming edge types in int_basicBlocks.
Andrew Bernat [Wed, 6 Oct 2010 20:10:49 +0000 (15:10 -0500)]
Fix error that caused us to incorrectly compute incoming edge types in int_basicBlocks.

9 years agoCreate an ordered-by-address comparison for BPatch_Sets of BPatch_basicBlocks.
Andrew Bernat [Wed, 6 Oct 2010 20:10:30 +0000 (15:10 -0500)]
Create an ordered-by-address comparison for BPatch_Sets of BPatch_basicBlocks.

9 years agofix handling of calls to invalid addresses
Kevin Roundy [Wed, 6 Oct 2010 18:03:44 +0000 (13:03 -0500)]
fix handling of calls to invalid addresses

Call instructions to invalid addresses were previously thrown out as not being real call instructions, meaning that they did not terminate blocks and were considered not to return.  We now treat such call instructions in the same way as indirect calls; we end the block, parse at the fallthrough address, adding an unresolved call edge to the sink block.

9 years agoFix bugs 1108 and 1099
Todd Frederick [Tue, 5 Oct 2010 17:09:04 +0000 (12:09 -0500)]
Fix bugs 1108 and 1099

9 years agoProcControl: createProcess: assume the executable name is the first element in argv
Todd Frederick [Mon, 4 Oct 2010 18:12:11 +0000 (13:12 -0500)]
ProcControl: createProcess: assume the executable name is the first element in argv

9 years agoBring VxWorks platform up to speed with GIT HEAD.
Ray Chen [Fri, 1 Oct 2010 22:02:56 +0000 (18:02 -0400)]
Bring VxWorks platform up to speed with GIT HEAD.

This commit gets the ppc32 VxWorks platform working with parseAPI and
instructionAPI.

9 years agoAdded files to .gitignore
Kevin Roundy [Fri, 1 Oct 2010 21:16:46 +0000 (16:16 -0500)]
Added files to .gitignore

9 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Kevin Roundy [Fri, 1 Oct 2010 16:58:04 +0000 (11:58 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

9 years agoAdd new parseAPI files to Windows project.
Bill Williams [Thu, 30 Sep 2010 17:37:17 +0000 (12:37 -0500)]
Add new parseAPI files to Windows project.

9 years agoFix for bug 1115: recognize call/pop/LEA thunk sequence
Bill Williams [Wed, 29 Sep 2010 19:20:35 +0000 (14:20 -0500)]
Fix for bug 1115: recognize call/pop/LEA thunk sequence

9 years agoRefactoring to separate jump table parsing from the rest of InstructionAdapter code...
Bill Williams [Thu, 23 Sep 2010 18:12:01 +0000 (13:12 -0500)]
Refactoring to separate jump table parsing from the rest of InstructionAdapter code, and heuristics for parsing PIC jump tables on PPC/Linux

9 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Kevin Roundy [Mon, 27 Sep 2010 21:25:53 +0000 (16:25 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

9 years agoMissed to commit a file in my previous commit
Madhavi Krishnan [Mon, 27 Sep 2010 15:12:31 +0000 (10:12 -0500)]
Missed to commit a file in my previous commit

9 years agoMore ppc32 rewriter fixes
Madhavi Krishnan [Mon, 27 Sep 2010 15:02:56 +0000 (10:02 -0500)]
More ppc32 rewriter fixes

This commit fixes a bug in creating a new stack
frame if there are not sufficient free registers
for isThunk (getPC) operation. "exclude registers"
in the getScratchRegister was not updated correctly.
Fixed.

9 years agowrong realloc call in SymLite-elf library
Aishwarya Kumar [Thu, 23 Sep 2010 22:13:05 +0000 (17:13 -0500)]
wrong realloc call in SymLite-elf library

A erroneous realloc call in Symlite-elf library caused a bug in STAT and it has been fixed.

9 years agoProcControl: correctly destroy async responses when readMemory fails
Todd Frederick [Thu, 23 Sep 2010 18:14:35 +0000 (13:14 -0500)]
ProcControl: correctly destroy async responses when readMemory fails

9 years agoMerge branch 'master' into devel
Todd Frederick [Thu, 23 Sep 2010 13:33:54 +0000 (08:33 -0500)]
Merge branch 'master' into devel

9 years agoRemove stackanalysis_printf from Dyninst; it's a DataflowAPI debug method.
Andrew Bernat [Wed, 22 Sep 2010 21:33:57 +0000 (16:33 -0500)]
Remove stackanalysis_printf from Dyninst; it's a DataflowAPI debug method.

9 years agoProcControl: fix return value of breakpoint uninstaller
Todd Frederick [Wed, 22 Sep 2010 17:34:11 +0000 (12:34 -0500)]
ProcControl: fix return value of breakpoint uninstaller

9 years agoUse SymtabAPI's demangled names for functions in the ParseAPI
Nathan Rosenblum [Wed, 22 Sep 2010 15:50:24 +0000 (10:50 -0500)]
Use SymtabAPI's demangled names for functions in the ParseAPI

This has no impact on the function names used in Dyninst; Dyninst
looks up names directly through the SymtabAPI.

9 years agoMerge branch 'master' into devel
Todd Frederick [Wed, 22 Sep 2010 15:54:07 +0000 (10:54 -0500)]
Merge branch 'master' into devel

9 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Tue, 21 Sep 2010 16:41:49 +0000 (11:41 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

9 years agoExplicitly clear return vector from instruction cracker before it's filled in.
Andrew Bernat [Tue, 21 Sep 2010 16:41:32 +0000 (11:41 -0500)]
Explicitly clear return vector from instruction cracker before it's filled in.

9 years agoCheck for catch blocks after non-returning call instructions
Nathan Rosenblum [Fri, 17 Sep 2010 15:47:31 +0000 (10:47 -0500)]
Check for catch blocks after non-returning call instructions

9 years agoMerge branch 'master' into devel
Todd Frederick [Mon, 20 Sep 2010 20:10:06 +0000 (15:10 -0500)]
Merge branch 'master' into devel

9 years agoIncorrect type passed to WIFSTOPPED macro (pointer rather than value)
Nathan Rosenblum [Thu, 26 Aug 2010 18:21:57 +0000 (13:21 -0500)]
Incorrect type passed to WIFSTOPPED macro (pointer rather than value)

9 years agoFix i386-unknown-linux2.4 and x86_64-unknown-linux2.4 at UMD.
Ray Chen [Mon, 20 Sep 2010 04:15:57 +0000 (00:15 -0400)]
Fix i386-unknown-linux2.4 and x86_64-unknown-linux2.4 at UMD.

Explicitly name system include files to satisfy stricter GCC 4.4.3.

9 years agoFix ppc32_linux at UMD.
Ray Chen [Mon, 20 Sep 2010 04:10:53 +0000 (00:10 -0400)]
Fix ppc32_linux at UMD.

Allow Class IA_IAPI's _isrc member to hold children other than Class CodeSource.

9 years agoMerge branch 'master' into devel
Todd Frederick [Fri, 17 Sep 2010 21:30:10 +0000 (16:30 -0500)]
Merge branch 'master' into devel

9 years agoFixes for rewriting stripped, static binaries (bug 1113).
Daniel McNulty [Fri, 17 Sep 2010 19:14:03 +0000 (14:14 -0500)]
Fixes for rewriting stripped, static binaries (bug 1113).

When rewriting stripped static binaries, heuristics are used to find the
functions that execute constructors and destructors for global objects.  These
functions are replaced with functions in the Dyninst RT library so additional
constructors and destructors in newly linked static libraries can also be
executed at initialization and finalization. The code to do this was broken.

Also, fixed error reporting for link-time errors when rewriting
static binaries.

9 years agoInvalidate the cache of all functions whose extents contain the location of a block...
Bill Williams [Thu, 16 Sep 2010 16:37:09 +0000 (11:37 -0500)]
Invalidate the cache of all functions whose extents contain the location of a block split.  This ensures that even if they've been finalized, they will re-check blocks, find the split block, and re-finalize when they are next queried for blocks etc.

9 years agoFix stack frame preamble heuristic:
Bill Williams [Thu, 16 Sep 2010 16:35:52 +0000 (11:35 -0500)]
Fix stack frame preamble heuristic:

* only reg-reg moves esp->ebp
* only moves of the same size as platform address width

9 years agoPower rewriter liveness bug fixes
Madhavi Krishnan [Fri, 17 Sep 2010 18:18:26 +0000 (13:18 -0500)]
Power rewriter liveness bug fixes

This commit fixes liveness bugs related to power special registers.
We save special registers only if they are live.
For isConservative case, we still save all the special registers.

Outstanding issues:
1) We do not track liveness for exception register (xer)
and floating point status and control register (fpscr)
2) Saving only some special registers cause some holes in
the stack as we use fixed offsets for
saving special register.

9 years agoAdds support for ppc64_linux linker stubs (SecurePLT)
Ray Chen [Mon, 13 Sep 2010 18:38:52 +0000 (14:38 -0400)]
Adds support for ppc64_linux linker stubs (SecurePLT)

The PPC64 architecture is limited to a 24-bit branch instruction.  To
circumvent this limitation, binutils linkers generate "stub" code close
to the original branch which, using multiple instructions, jump to the
actual target.

This confuses our current parsing scheme, causing it to generate a number of
unwanted "targXXXXX" functions.  While technically correct, this prevents the
ability to do callsite instrumentation.

This commit allows our parser to correctly recognize these targets as stubs,
determine their true target, and return it to the parser as if it were a
normal call.

9 years agoProperly guard region lookups in findMain code.
Andrew Bernat [Thu, 16 Sep 2010 15:50:39 +0000 (10:50 -0500)]
Properly guard region lookups in findMain code.

9 years agoMissed line from patch in last commit.
Emily Jacobson [Wed, 15 Sep 2010 22:26:02 +0000 (17:26 -0500)]
Missed line from patch in last commit.

9 years agoSymEval fix for circular dependencies during substitution.
Emily Jacobson [Wed, 15 Sep 2010 22:07:34 +0000 (17:07 -0500)]
SymEval fix for circular dependencies during substitution.

9 years agoPick up any non-standard libiberty location from make.config.local as well.
Bill Williams [Wed, 15 Sep 2010 17:07:28 +0000 (12:07 -0500)]
Pick up any non-standard libiberty location from make.config.local as well.