Previously, the macaw-x86 semantics for call would retrieve the call target after pushing the next instruction's address to the stack, but if the call target involves the stack pointer, then this would mean that it would get the next instruction's address when retrieving the call target. This is not what is intended!
This patch fixes the issue by always retrieving the call target before pushing the next instruction's address to the stack. I have added a test case to the macaw-x86-symbolic test suite which demonstrates that this fix works as intended.
Previously, the
macaw-x86
semantics forcall
would retrieve the call target after pushing the next instruction's address to the stack, but if the call target involves the stack pointer, then this would mean that it would get the next instruction's address when retrieving the call target. This is not what is intended!This patch fixes the issue by always retrieving the call target before pushing the next instruction's address to the stack. I have added a test case to the
macaw-x86-symbolic
test suite which demonstrates that this fix works as intended.Fixes #420.