Branch: refs/heads/master Home: https://github.com/dyninst/dyninst Commit: 209121aefb2c2ac3b51e0a919f422d635d4ae60c https://github.com/dyninst/dyninst/commit/209121aefb2c2ac3b51e0a919f422d635d4ae60c Author: Tim Haines <thaines.as...@gmail.com> 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 Dyninst-api@cs.wisc.edu https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api