Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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 7b8d777 from 2013 used o{r,e}ax for x86, but was changed to use {r,e}ax by 23a5a76 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
- Loading branch information