Skip to content

failed to devirtualize the indirect jump (arm/switch-ldrls.S#L10) #31

@Zhiwuyazhe1

Description

@Zhiwuyazhe1

The assembly code is as follows:

9838:       e359000a        cmp     r9, #10
983c:       979ff109        ldrls   pc, [pc, r9, lsl #2]
9840:       ea0005cc        b       af78 <__cxa_atexit@plt+0x2218>
9844:       00009d0c        andeq   r9, r0, ip, lsl #26

The revng export results are as follows:
revng artifact --resume=temp --analyses-list=revng-initial-auto-analysis emit-cfg yes.strip

Entry:           "0x9804:Code_arm"
Blocks:
  - ID:              "0x9834:Code_arm"
    End:             "0x9840:Code_arm"
    Successors:
      - Kind:            FunctionEdge
        Type:            LongJmp
      - Destination:     "0x9840:Code_arm"
        Kind:            FunctionEdge
        Type:            DirectBranch

the indirect jump is like https://github.com/revng/revng-qa/blob/master/share/revng/test/tests/analysis/CollectCFG/arm/switch-ldrls.S#L10 , but it can't be catched in this example.

I will provide binary and expected results in attach files.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions