Branch: refs/heads/master
Home: https://github.com/dyninst/dyninst
Commit: 209121aefb2c2ac3b51e0a919f422d635d4ae60c
https://github.com/dyninst/dyninst/commit/209121aefb2c2ac3b51e0a919f422d635d4ae60c
Author: Tim Haines <[email protected]>
Date: 2023-10-31 (Tue, 31 Oct 2023)
Changed paths:
M common/src/registers/MachRegister.C
Log Message:
-----------
Fix MachRegister bool checks (#1613)
The logic between the getRegisterX and isRegisterX members diverged over time.
This implements the isRegisterX in terms of the getRegisterX while preserving
extra checks where necessary.
* Write 'isPC' in terms of 'getPC'
* Add missing architectures in getFramePointer
* Don't assert in getFramePointer
* Write isFramePointer in terms of getFramePointer
This also adds correct detection of frame pointers on PPC.
* Add missing arch in getStackPointer
* Don't assert in getStackPointer
* Reorder checks in getStackPointer
For consistency
* Write isStackPointer in terms of getStackPointer
This also now includes StackTop.
* isFramePointer ws
* isPC ws
* isStackPointer typo
* Don't assert in getSyscallNumberReg
* Add missing arch in getSyscallNumberReg
* Write isSyscallNumberReg in terms of getSyscallNumberReg
The original implementation in 7b8d777ce from 2013 used o{r,e}ax for
x86, but was changed to use {r,e}ax by 23a5a76d2 in 2015. Neither
the SystemV ABI nor Intel Dev Guide refer to o*ax, so I think this
check is now correct.
* Don't assert in getSyscallReturnValueReg
* Add missing arches in getSyscallReturnValueReg
* Write isSyscallReturnValueReg in terms of getSyscallReturnValueReg
These two had become completely unsynchronized. There is a reg for
aarch64 and both PPC registers were wrong in the bool check.
* Reorder checks in getZeroFlag
For consistency
* Don't assert in getZeroFlag
* Add missing arch in getZeroFlag
* Write isZeroFlag in terms of getZeroFlag
_______________________________________________
Dyninst-api mailing list
[email protected]
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api