Skip to content

Hexagon lifting issues #8621

Description

@xusheng6

Binary files and instruction addresses (ZIP available for upload separately):

  • kat-hexagon.elf: 0x10e84; SHA-256 c92042e5504ec1eb0d3bf576e723b612cf35267adc963210b42d15aaba95e49a

1: Hexagon endloop0 / endloop1

Binary instruction: kat-hexagon.elf / adler32 at 0x10e84; bytes ff83000023c681e1.

Disassembly: { immext(#65472); r3 -= mpyi(r1,#65521); } endloop0.

Current lifted LLIL (relevant lines):

if (lc0 != 0) then loop else exit
lc0 = lc0 - 1
jump(sa0)

Expected LLIL (semantic sketch):

if (lc0 > 1) { lc0 = lc0 - 1; jump(sa0) } else { fallthrough }

A one-iteration hardware loop must leave the loop after its first body execution.

Code: arch/hexagon/src/lift.rs:123

Activity

  1. xusheng6 commented on Oct 1, 2026

    @xusheng6
    MemberAuthor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions