Open ehntoo opened 1 month ago
Hi @ehntoo , thx for filing the issue and providing the detailed repro steps. While I can reproduce it locally, I see you called this a "regression" in the issue title. Is this known to be working previously? If so, do you have a version/build number that it still works?
Unfortunately I don't have conclusive proof that this was working in prior revisions or a version where it was, just a recollection that I've seen 64-bit returns working as I would have expected in similar situations with Thumb2 binaries in the past.
On Tue, Oct 15, 2024, 03:48 xusheng @.***> wrote:
Hi @ehntoo https://github.com/ehntoo , thx for filing the issue and providing the detailed repro steps. While I can reproduce it locally, I see you called this a "regression" in the issue title. Is this known to be working previously? If so, do you have a version/build number that it still works?
— Reply to this email directly, view it on GitHub https://github.com/Vector35/binaryninja-api/issues/5992#issuecomment-2413140815, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA3DDNFBETTNBQRZEWKPL3Z3TCDRAVCNFSM6AAAAABPZX2YSGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMJTGE2DAOBRGU . You are receiving this because you were mentioned.Message ID: @.***>
Currently we have no support for variables with backing of multiple registers or mix of registers and stack
Version and Platform (required):
Bug Description: While working on a custom architecture, I was having issues with 64-bit returns from functions only showing the 32-bit primary return register value in MLIL and HLIL. After some investigation, it seems this also applies to other architectures like ARMv7 - even after setting the return type for a trivial function to
uint64_t
, Binary Ninja only presents the value inr0
as the value returned from the function.Steps To Reproduce:
01 00 a0 e3 02 10 a0 e3 1e ff 2f e1
into a new .bin file (also provided in the .zip attached to the issue)uint64_t
1
rather than0x200000001
Even if the function properties are edited to include
r1
in the return registers, the HLIL still does not return0x200000001
as expected, showingreturn 1, 2
instead.Expected Behavior: HLIL should show a return value of
0x200000001
since the calling convention hashigh_int_return_reg = 'r1'
and the return type is wider than the normal return value register.Screenshots/Video Recording:
Binary: test.zip