Branch: refs/heads/master
Home: https://github.com/dyninst/dyninst
Commit: 209121aefb2c2ac3b51e0a919f422d635d4ae60c
https://github.com/dyninst/dyninst/commit/209121aefb2c2ac3b51e0a919f422d635d4ae60c
Author: Tim Haines <thaines.astro@xxxxxxxxx>
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
|