1. Replace springboards prioriy "OffLimits" and "Required" with "FuncEntry" and ...
authorXiaozhu Meng <xmeng@cs.wisc.edu>
Thu, 18 Apr 2019 16:16:06 +0000 (11:16 -0500)
committerXiaozhu Meng <xmeng@cs.wisc.edu>
Thu, 18 Apr 2019 16:16:06 +0000 (11:16 -0500)
commit57b8030b30c9e6b5ecc5fa0a705316a9a683e38b
tree0defbd2023f1e47df6ac15100c225eda684cc799
parent0070ce35ddbad51ca888c9081d3fce6a3afb1ae2
1. Replace springboards prioriy "OffLimits" and "Required" with "FuncEntry" and "IndirBlockEntry".

Only "FuncEntry" springboards are required because control flow enter instrumentation
through function calls (we relocate the whole function even if only a part of the
function is instrumented).

"IndirBlockEntry" springboards are important for re-directing control flow from
jump tables back to instrumentation. But, it is not as important as "FuncEntry".

2. Jumps to code in another secion should be treated as tail calls.
12 files changed:
dyninstAPI/src/Relocation/CFG/RelocBlock.C
dyninstAPI/src/Relocation/CodeMover.C
dyninstAPI/src/Relocation/Springboard.C
dyninstAPI/src/Relocation/Springboard.h
dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
dyninstAPI/src/Relocation/Transformers/Movement-analysis.h
dyninstAPI/src/Relocation/Transformers/Transformer.h
parseAPI/src/IA_aarch64.C
parseAPI/src/IA_power.C
parseAPI/src/IA_x86.C
parseAPI/src/IndirectAnalyzer.C
parseAPI/src/Parser.C