Branch: refs/heads/master
Home: https://github.com/dyninst/dyninst
Commit: b3796c755f99395da6fc78b5dd6023fda4186fb8
https://github.com/dyninst/dyninst/commit/b3796c755f99395da6fc78b5dd6023fda4186fb8
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-08-28 (Tue, 28 Aug 2018)
Changed paths:
M dyninstAPI/src/unix.C
Log Message:
-----------
Power8 does not necessary have the .opd section
Commit: e15b10217a5a9624742701a42e902518ad083eda
https://github.com/dyninst/dyninst/commit/e15b10217a5a9624742701a42e902518ad083eda
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-08-30 (Thu, 30 Aug 2018)
Changed paths:
M common/src/arch-power.C
M common/src/arch-power.h
M dyninstAPI/src/Relocation/CFG/RelocBlock.C
M dyninstAPI/src/Relocation/CFG/RelocBlock.h
M dyninstAPI/src/addressSpace.C
M dyninstAPI/src/block.C
M dyninstAPI/src/block.h
M dyninstAPI/src/codegen-power.C
M dyninstAPI/src/codegen-power.h
M dyninstAPI/src/function.C
M dyninstAPI/src/function.h
M dyninstAPI/src/image.C
M dyninstAPI/src/mapped_object.C
M dyninstAPI/src/parse-cfg.C
M dyninstAPI/src/parse-cfg.h
M parseAPI/src/CodeObject.C
Log Message:
-----------
Start to make instrumentation on Power8 work.
The first issue is about the new power ABI, where each function has two entries.
The inter-procedural entry has the function name and the intra-procedural entry
does not, and so is named as targXXXX. We do two things here:
1. We should not relocate targXXXX as it is essentially the same function as the inter-procedural one.
2. The inter-procedural entry contains two preamble to set up the value of r2 (TOC). We should
not relocate these two instructions. So, when creating a RelocBlock for such entry, we skip
the first two instructions.
The second issue is about generating long branches. This is related to springboard
and generating function call instrumentation (as function call on power is branch).
For calls, Ben introduces the uses of TAR register to store the target address. The
power manual says TAR register is reserved for system software. We will need to
revisit the use of TAR register. For long springboard, right now we cannot create an
instPoint to do liveness. So, long springboards are now done by traps.
Commit: 1ad3c5ead1974ac84618860a8a213eff13f4455d
https://github.com/dyninst/dyninst/commit/1ad3c5ead1974ac84618860a8a213eff13f4455d
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-03 (Mon, 03 Sep 2018)
Changed paths:
M dyninstAPI/src/Relocation/CFG/RelocBlock.C
M dyninstAPI/src/Relocation/CodeMover.C
M dyninstAPI/src/Relocation/Transformers/Instrumenter.C
M dyninstAPI/src/emit-power.h
M dyninstAPI/src/inst-power.C
M dyninstAPI/src/inst-power.h
Log Message:
-----------
1. Copy Ben's fix for code gen on power
2. Make sure we skip the function preamble when genearting springboard
3. Reloc block now can be empty, so should not assert
Commit: 1730b7cd5f4a49bdc55b182e683cc5d72f5643e7
https://github.com/dyninst/dyninst/commit/1730b7cd5f4a49bdc55b182e683cc5d72f5643e7
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-05 (Wed, 05 Sep 2018)
Changed paths:
M dyninstAPI/src/Relocation/CFG/RelocBlock.C
M dyninstAPI/src/Relocation/CFG/RelocGraph.C
M dyninstAPI/src/Relocation/CFG/RelocGraph.h
M dyninstAPI/src/Relocation/CodeMover.C
M dyninstAPI/src/Relocation/Springboard.C
M dyninstAPI/src/block.C
M dyninstAPI/src/function.C
Log Message:
-----------
More fixes for power instrumentation
1. Do not relocate the power preamble by skipping the first two instructions,
instead of comparing addresses
2. RelocGraph indexes RelocBlock by block starting address rather than
block_instance pointers
3. Function entry springboard is now using OffLimits springboard priority,
as it should have a higher priority than block entry springboard.
Commit: 0fee9504b030981f47cf6645f160f3f95e8e7e30
https://github.com/dyninst/dyninst/commit/0fee9504b030981f47cf6645f160f3f95e8e7e30
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-05 (Wed, 05 Sep 2018)
Changed paths:
M dyninstAPI/src/BPatch_loopTreeNode.C
M dyninstAPI/src/BPatch_point.C
Log Message:
-----------
Two more fixes for instrumentation on power. Now all tests in create and attach modes are passing.
1. call site instrumentation point should return the real function rather than the targ function
2. loop tree node should not include targ functions as callee
Commit: 04c9b8706da758828dfc4d19e0219038f84a9bcd
https://github.com/dyninst/dyninst/commit/04c9b8706da758828dfc4d19e0219038f84a9bcd
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-06 (Thu, 06 Sep 2018)
Changed paths:
M dyninstAPI/src/inst-power.C
Log Message:
-----------
Fix power rewriter mode
1. there is no longer .opd section in Power 8 binaries. We used to derived TOC for each
function based on .opd section. Such code is outdated.
2. Fix genearting calls to PLT on power. If the caller and the callee are not in the
same object, we need a PLT call.
3. Fix getting the same scratch registers
Commit: 9d17f858f26629130def0d817aabd8b34cf992dc
https://github.com/dyninst/dyninst/commit/9d17f858f26629130def0d817aabd8b34cf992dc
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-07 (Fri, 07 Sep 2018)
Changed paths:
M dyninstAPI/src/mapped_object.C
M parseAPI/src/CodeObject.C
M parseAPI/src/SymtabCodeSource.C
Log Message:
-----------
The fixes for power preamble should not be enabled on other platforms
and suppress unncessary warning output
Commit: 07126d227f7df5a1bf31d97313de0556868f4446
https://github.com/dyninst/dyninst/commit/07126d227f7df5a1bf31d97313de0556868f4446
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-09-07 (Fri, 07 Sep 2018)
Changed paths:
M dyninstAPI/src/mapped_object.C
Log Message:
-----------
Remove debugging printf statement
Commit: 40cbe229f295c649411cb0e07b3afbc17ae4b6e0
https://github.com/dyninst/dyninst/commit/40cbe229f295c649411cb0e07b3afbc17ae4b6e0
Author: Xiaozhu Meng <mxz297@xxxxxxxxx>
Date: 2018-09-07 (Fri, 07 Sep 2018)
Changed paths:
M common/src/arch-power.C
M common/src/arch-power.h
M dyninstAPI/src/BPatch_loopTreeNode.C
M dyninstAPI/src/BPatch_point.C
M dyninstAPI/src/Relocation/CFG/RelocBlock.C
M dyninstAPI/src/Relocation/CFG/RelocBlock.h
M dyninstAPI/src/Relocation/CFG/RelocGraph.C
M dyninstAPI/src/Relocation/CFG/RelocGraph.h
M dyninstAPI/src/Relocation/CodeMover.C
M dyninstAPI/src/Relocation/Springboard.C
M dyninstAPI/src/Relocation/Transformers/Instrumenter.C
M dyninstAPI/src/addressSpace.C
M dyninstAPI/src/block.C
M dyninstAPI/src/block.h
M dyninstAPI/src/codegen-power.C
M dyninstAPI/src/codegen-power.h
M dyninstAPI/src/emit-power.h
M dyninstAPI/src/function.C
M dyninstAPI/src/function.h
M dyninstAPI/src/image.C
M dyninstAPI/src/inst-power.C
M dyninstAPI/src/inst-power.h
M dyninstAPI/src/mapped_object.C
M dyninstAPI/src/parse-cfg.C
M dyninstAPI/src/parse-cfg.h
M dyninstAPI/src/unix.C
M parseAPI/src/CodeObject.C
M parseAPI/src/SymtabCodeSource.C
Log Message:
-----------
Merge pull request #485 from dyninst/power8_instrumentation_fix
Power8 instrumentation fix
Compare: https://github.com/dyninst/dyninst/compare/7a6870835880...40cbe229f295
**NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/
Functionality will be removed from GitHub.com on January 31st, 2019.
|