You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi,
Recently started working with llvm-mctoll and trying to lift and recompile a small x64 httpd server program as a proof of concept to see if it would be a fit for another tool I am working on. I've successfully added in some missing instructions, but have hit a new issue and was hoping someone could point me in the correct direction.
In raiseBinaryOpRegToRegMachineInstr, I'm getting an assertion error for the following instruction: TEST8rr $al, $al, <0x5590bc01d7d8>, implicit-def $eflags
With the assertion being:
bool llvm::mctoll::X86MachineInstructionRaiser::raiseBinaryOpRegToRegMachineInstr(const llvm::MachineInstr&): Assertion `(Src1Value != nullptr) && (Src2Value != nullptr) && "Unhandled situation: register is used before initialization in " "test"' failed.
I have verified that both SrcValues are null, but am failing to see where the build up to the SSA value for X86MachineInstructionRaiser::getRegOperandValue is happening.
%rax temporary register; with variable arguments passes information about the number of vector
registers used; 1st return register
From the code, if $al is set, the vector registers are loaded. I do not recall handling this situation in the tool. So, it may be a limitation that exists when raising variadic functions that are compiled to use vector register arguments.
If you (or anyone else) have the cycles, feel free to submit a fix. Else, I will look at it ASAP. Thanks again!
Hi,
Recently started working with llvm-mctoll and trying to lift and recompile a small x64 httpd server program as a proof of concept to see if it would be a fit for another tool I am working on. I've successfully added in some missing instructions, but have hit a new issue and was hoping someone could point me in the correct direction.
In raiseBinaryOpRegToRegMachineInstr, I'm getting an assertion error for the following instruction:
TEST8rr $al, $al, <0x5590bc01d7d8>, implicit-def $eflags
With the assertion being:
I have verified that both SrcValues are null, but am failing to see where the build up to the SSA value for
X86MachineInstructionRaiser::getRegOperandValue
is happening.I dumped the MachineFunction if it helps:
This is my first time delving into the MachineInstruction layer, so it has been a fun learning experience!
Thanks,
Dave
The text was updated successfully, but these errors were encountered: