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
Right now, it is the BIL plugin's job to turn unsupported instructions into intrinsic calls, but this will break when working on targets that don't fully rely on the BIL lifter. When the --bil-enable-intrinsic option is set, the BIL plugin will provide it's own semantics even though the instruction is properly handled by other lifters. This leads to a conflict. (e.g. the BIL will provide call llvm-thumb:ADDrr while the other lifters would provide R0 := R1 + R2.
This feature should be handled on the BIR side where it drops empty instructions. Rather than dropping these instructions, the right approach would be to represent these empty instructions as a separate blk in the BIR. See:
The plan is to implement missing instructions using the intrinsic primitives introduced in #1452 and deprecate the BIL intrinsics at all. It will require some work, but in the end, will give us well-defined intrinsic functions with clear argument passing semantics.
Right now, it is the BIL plugin's job to turn unsupported instructions into intrinsic calls, but this will break when working on targets that don't fully rely on the BIL lifter. When the
--bil-enable-intrinsic
option is set, the BIL plugin will provide it's own semantics even though the instruction is properly handled by other lifters. This leads to a conflict. (e.g. the BIL will providecall llvm-thumb:ADDrr
while the other lifters would provideR0 := R1 + R2
.This feature should be handled on the BIR side where it drops empty instructions. Rather than dropping these instructions, the right approach would be to represent these empty instructions as a separate blk in the BIR. See:
bap/lib/bap_sema/bap_sema_lift.ml
Line 73 in 6c97e43
The text was updated successfully, but these errors were encountered: